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

Zmienna zdefiniowana przez użytkownika jako alias MySQL v8.0 nie działa

Więc w końcu się domyśliłem. Dzieje się tak, ponieważ rank jest teraz zastrzeżonym słowem kluczowym w MySQL 8.x.x zgodnie z opisem tutaj .

Po zaktualizowaniu nazwy zmiennej zapytanie zaczęło działać.

Inna alternatywa jest użycie back-ticków, które moim zdaniem są bardziej odporne na przyszłość, ponieważ więcej słów kluczowych jest zarezerwowanych, zapobiegnie to niepotrzebnemu łamaniu SQL. Np. Poniższe działa dobrze na MySQL v8.x.x

Np.:

SELECT *, @rank := @rank + 1 AS `rank`
FROM q29wg_jreviews_comments ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:Błąd składni z przecięciem?

  2. mysql cross join, ale bez zduplikowanej pary?

  3. Kolumna modelu Laravel „Użytkownik” bez identyfikatora

  4. Jak powiedzieć node.js, że mysql nie działa na domyślnym porcie?

  5. MySQL LIMIT z parametrami