Row_Number in Mysql

In Mysql gibt es leider kein Funktion, welche die Zeilennummer einer Ergebniszeile mit angibt. Eigentlich schade, braucht man machmal. Oracle hat dafür ROW_NUMBER und der SQL-Server hat im Transact-SQL die Funktion ROW_NUMBER

Ein kleiner Trick hilft:
select
@rownum:=@rownum+1 ‘rank’,
t.*
from
aTable t,
(SELECT @rownum:=0) r
order by t.aColumn desc limit 10;

Wichtig ist das man vor der eigentlichen Verarbeitung eine Variable einführt (hier @rownum) und initalisiert (Wertzuweisung durch := ), die Variable wird dann bei der Endverarbeitung der Zeilen hochgezählt.

Leave a Reply