背景
项目需要升级MySQL版本,打算5.6升5.7,升级后发现原本正常的部分SQL,不能正常工作。
错误的SQL:
case1:
SELECT DISTINCT(YEAR(created_time))
FROM user
ORDER BY created_time DESC
case2:
SELECT id, name
FROM user
ORDER BY created_time DESC
正确的应该为:
SELECT DISTINCT(YEAR(created_time))
FROM user
ORDER BY 1 DESC
case2:
SELECT id, name, created_time
FROM user
ORDER BY created_time DESC
解决方案
sql_mode中,去掉ONLY_FULL_GROUP_BY
即可