同一SQLに対する、mysqlのバージョンによる動作の違い

最近のmysqlで、ASで作ったエイリアス名に1重引用符を付けてORDER BY指定したときの動作が変わりました。
DBサーバを移行してmysqlのバージョンを新しくしたら、PHPコード内のSQL動作結果が変わっていてびっくりしました。

具体例は以下、
[SQL]
$ mysql -u root mysql # mysql-server: 5.0.27
mysql> SELECT COUNT(*) AS cnt FROM user
mysql> GROUP BY User ORDER BY cnt desc;
+—–+
| cnt |
+—–+
| 4 |
| 1 |
+—–+
2 rows in set (0.00 sec)

mysql> SELECT COUNT(*) AS cnt FROM user
mysql> GROUP BY User ORDER BY ‘cnt’ desc;
+—–+
| cnt |
+—–+
| 4 |
| 1 |
+—–+
2 rows in set (0.00 sec)
— cntも’cnt’も同じ動作
[/SQL]

[SQL]
$ mysql -u root mysql # mysql-server: 5.0.45
mysql> SELECT COUNT(*) AS cnt FROM user
mysql> GROUP BY User ORDER BY cnt desc;
+—–+
| cnt |
+—–+
| 4 |
| 1 |
+—–+
2 rows in set (0.00 sec)

mysql> SELECT COUNT(*) AS cnt FROM user
mysql> GROUP BY User ORDER BY ‘cnt’ desc;
+—–+
| cnt |
+—–+
| 1 |
| 4 |
+—–+
2 rows in set (0.00 sec)
— cntと’cnt’で違う動作
[/SQL]

ORDER BY ‘cnt’の ‘cnt’部分を文字列リテラルとみなすか、識別子とみなすかの差ですね。