select name,
@rownum := @rownum + 1 as row_number
from your_table
cross join (select @rownum := 0) r
order by name
Ta część:
cross join (select @rownum := 0) r
umożliwia wprowadzenie zmiennej bez konieczności oddzielnego zapytania. Tak więc pierwsze zapytanie można również podzielić na dwa zapytania w ten sposób:
set @rownum := 0;
select name,
@rownum := @rownum + 1 as row_number
from your_table
order by name;
na przykład, gdy jest używany w procedurze składowanej.