select name,
@rownum := @rownum + 1 as row_number
from your_table
cross join (select @rownum := 0) r
order by name
Den här delen:
cross join (select @rownum := 0) r
gör det möjligt att införa en variabel utan behov av en separat fråga. Så den första frågan kan också delas upp i två frågor så här:
set @rownum := 0;
select name,
@rownum := @rownum + 1 as row_number
from your_table
order by name;
till exempel när den används i en lagrad procedur.