共计 字 • 阅读约
min
原因
MySQL 5.7 或者更高的版本中使用 group by
会报如下错误: this is incompatible with sql_mode=only_full_group_by,这是因为 MySQL 默认启用了 ONLY_FULL_GROUP_BY。
select @@sql_mode
可以看到结果:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE...
这就使得我们的 SQL 语句中必须使用所有 select 的字段来 group by
,不然就不能执行
解决方法
最稳妥的方法:修改配置文件
找到 my.ini(windows) 或 my.conf(Linux) 文件,Linux 对应的位置一般是 /etc/my.conf
一定要写在[mysqld]节点下面,否则不会生效
[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'
重启 MySQL:
service mysqld restart
文章更新于: 2021-4-18 9:57:11