Použijte:
SELECT t.id,
t.variety,
(SELECT COUNT(*) FROM TABLE WHERE id < t.id) +1 AS NUM
FROM TABLE t
Není to ideální způsob, jak to udělat, protože dotaz na hodnotu num se provede pro každý vrácený řádek. Lepší nápad by bylo vytvořit NUMBERS
tabulka s jedním sloupcem obsahujícím číslo začínající číslem, které se zvyšuje na neuvěřitelně velké číslo, a poté spojte a odkazujte na NUMBERS
tabulky způsobem podobným příkladu proměnné, který následuje.
Hodnocení MySQL nebo jeho nedostatek
Můžete definovat proměnnou, abyste získali funkci pseudočísla řádku, protože MySQL nemá žádné hodnotící funkce:
SELECT t.id,
t.variety,
@rownum := @rownum + 1 AS num
FROM TABLE t,
(SELECT @rownum := 0) r
SELECT @rownum := 0
definuje proměnnou a nastaví ji na nulu.r
je alias poddotazu/tabulky, protože pokud nedefinujete alias pro poddotaz, i když jej nepoužíváte, dostanete v MySQL chybu.
Nelze použít proměnnou v zobrazení MySQL
Pokud tak učiníte, zobrazí se chyba 1351, protože nemůžete použít proměnnou v pohledu kvůli designu . chování chyb/funkcí je zdokumentováno zde .