2012-11-26 10 views
24

Hier ist meine mysql queryin Inkrementzähler wählen mysql

select name from table; 

ich an der Seite von name.How einen Zuwachs Zähler auswählen möchten, dies zu tun. so wird die erwartete Ausgabe

Jay 1 
roy 2 
ravi 3 
ram 4 

Antwort

64
select name, 
     @rownum := @rownum + 1 as row_number 
from your_table 
cross join (select @rownum := 0) r 
order by name 

Dieser Teil sein:

cross join (select @rownum := 0) r 

macht es möglich, eine Variable, ohne die Notwendigkeit einer separaten Abfrage init. So kann die erste Abfrage auch in zwei Abfragen wie diese unterteilt werden:

zum Beispiel bei Verwendung in einer gespeicherten Prozedur.

+2

Wie Fabio Reche versuchte zu sagen, müssen wir es mit einem '@' vor 'rownum + 1 'schreiben ... ist es nicht' @ownum: = @rownum + 1'? – ghiscoding

+0

Danke, +1 für 'CROSS JOIN', gelöstes Anthere-Problem, wenn ich eine Gruppe nach clausule brauche (map/reduce) –

+0

Die Unteranfrage wird verwendet, um @rownum zu initialisieren. – Genjo