Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pozycja rzędu w widoku MySQL

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak naprawić serializowany ciąg, który został uszkodzony przez nieprawidłową długość licznika bajtów?

  2. Jak importować i eksportować bazę danych przez SSH

  3. Canonical:Jak zapisać dane formularza HTML w bazie danych MySQL

  4. jak utworzyć wyzwalacz aktualizacji dla zwiększenia/zmniejszenia 1 liczby do łącznej liczby głosów

  5. Jak sprawić, by mysqli rzucał wyjątki za pomocą MYSQLI_REPORT_STRICT?