错误原因:

在MySQL5.7之后,sql_mode 默认会有 ONLY_FULL_GROUP_BY

SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错

此参数 ( ONLY_FULL_GROUP_BY ) 要求select, insert,update, delete 等语句中查询出来的列必须是明确的

解决办法:

1.执行SQL语句

SELECT @@sql_mode

2.得到查询结果:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

3.复制查询结果, 并去掉 ONLY_FULL_GROUP_BY, 在 my.ini 中 [mysqld] 块写入:

sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

4.重启MySQL, 完成.


  本站所有文章如未特殊注明均为原创。本文由 逆水行舟 原创,未经同意请勿转载、引用。