Tak jsem na to nakonec přišel. Stalo se to proto, že rank
je nyní vyhrazené klíčové slovo v MySQL 8.x.x, jak je popsáno zde .
Jakmile jsem aktualizoval název proměnné, dotaz začal fungovat.
Další alternativa je použít back-ticks, což je podle mě odolnější do budoucna, protože bude rezervováno více klíčových slov, zabrání to zbytečnému rozbití vašeho SQL. Např. Následující funguje dobře na MySQL v8.x.x
Např.:
SELECT *, @rank := @rank + 1 AS `rank`
FROM q29wg_jreviews_comments ;