Mysql
 sql >> Base de données >  >> RDS >> Mysql

La variable définie par l'utilisateur en tant qu'alias MySQL v8.0 ne fonctionne pas

Alors j'ai finalement compris, ça se passait parce que rank est maintenant un mot clé réservé dans MySQL 8.x.x comme décrit ici .

Une fois que j'ai mis à jour le nom de la variable, la requête a commencé à fonctionner.

Une autre alternative est d'utiliser des back-ticks qui, je pense, sont plus à l'épreuve du temps car plus de mots-clés sont réservés, cela empêchera votre SQL de se casser inutilement. Par exemple. Ce qui suit fonctionne bien sur MySQL v8.x.x

Ex :

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