Użyj:
SELECT t.id,
t.variety,
(SELECT COUNT(*) FROM TABLE WHERE id < t.id) +1 AS NUM
FROM TABLE t
Nie jest to idealny sposób, ponieważ zapytanie o wartość num zostanie wykonane dla każdego zwróconego wiersza. Lepszym pomysłem byłoby utworzenie NUMBERS
tabeli, z pojedynczą kolumną zawierającą liczbę zaczynającą się od jednego, która zwiększa się do niezwykle dużej liczby, a następnie dołącz i odnieś się do NUMBERS
tabeli w sposób podobny do poniższego przykładu zmiennej.
Ranking MySQL lub jego brak
Możesz zdefiniować zmienną, aby uzyskać funkcjonalność pseudonimowania liczby wierszy, ponieważ MySQL nie posiada żadnych funkcji rankingowych:
SELECT t.id,
t.variety,
@rownum := @rownum + 1 AS num
FROM TABLE t,
(SELECT @rownum := 0) r
SELECT @rownum := 0
definiuje zmienną i ustawia ją na zero.r
jest aliasem podzapytania/tabeli, ponieważ otrzymasz błąd w MySQL, jeśli nie zdefiniujesz aliasu dla podzapytania, nawet jeśli go nie używasz.
Nie można użyć zmiennej w widoku MySQL
Jeśli to zrobisz, otrzymasz błąd 1351, ponieważ nie możesz używać zmiennej w widoku ze względu na projekt . udokumentowano tutaj zachowanie błędów/funkcji .