Mysql
 sql >> Datenbank >  >> RDS >> Mysql

ROW_NUMBER() in MySQL

Es gibt keine Ranking-Funktion in MySQL. Das Beste, was Sie erreichen können, ist die Verwendung einer Variablen:

SELECT t.*, 
       @rownum := @rownum + 1 AS rank
  FROM YOUR_TABLE t, 
       (SELECT @rownum := 0) r

also wie würde das in meinem fall funktionieren? Ich bräuchte zwei Variablen, jeweils eine für col1 und col2? Col2 müsste irgendwie zurückgesetzt werden, wenn sich col1 geändert hat..?

Ja. Wenn es Oracle wäre, könnten Sie die LEAD-Funktion verwenden, um den nächsten Wert zu erreichen. Glücklicherweise deckt Quassnoi die Logik für das ab, was Sie brauchen in MySQL zu implementieren .