问题描述
原本只是项目中简单的原生sql查询,没想到报错了,1055错误,看描述就是group by的时候select字段里面哪里出错了。
解决方案
还是第一次看到这种错误,可能是原生sql写得少的原因吧,直接网上一查,才知道原来是mysql5.7以后才会出现的问题,简单来说就是要select出的字段不存在group by后的这个原因。
- 先登录mysql
mysql -uroot -p
- 查询sql_mode,就是这个新增内容导致的问题
select @@sql_mode;
可以看到查询的结果是
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
第一个新增的 ONLY_FULL_GROUP_BY 就是导致错误的原因
- 编辑 my.cnf 文件,我的文件在 /etc/my.cnf
vim /etc/my.cnf
把 sql_mode 设置为没有 ONLY_FULL_GROUP_BY,默