select name,
@rownum := @rownum + 1 as row_number
from your_table
cross join (select @rownum := 0) r
order by name
Тази част:
cross join (select @rownum := 0) r
прави възможно въвеждането на променлива без нужда от отделна заявка. Така че първата заявка също може да бъде разделена на две заявки като това:
set @rownum := 0;
select name,
@rownum := @rownum + 1 as row_number
from your_table
order by name;
например, когато се използва в съхранена процедура.