Mysql 关闭ONLY_FULL_GROUP_BY
程序员文章站
2023-12-28 10:31:10
...
bug原因:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。简而言之,就是SELECT后面接的列必须被GROUP BY后面接的列所包含。
如:
select a,b from table group by a,b,c; (正确)
select a,b,c from table group by a,b; (错误)
这个配置会使得GROUP BY语句环境变得十分狭窄,所以一般都不加这个配置。
查看mysql是否开启了ONLY_FULL_GROUP_BY
select @@global.sql_mode
如果返回值包含 ONLY_FULL_GROUP_BY,那么说明mysql开启了ONLY_FULL_GROUP_BY。
解决方法:
去掉 返回值中的ONLY_FULL_GROUP_BY,将剩下的返回值拷贝出来,打开mysql的ini配置文件,将拷贝下来的配置追加到[mysqld]后面
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’
注意要用单引号括起来。
然后重启mysql服务
特别说明:mysql停止/重启命令
win下
net stop mysql
net start mysql
推荐阅读
-
Mysql 关闭ONLY_FULL_GROUP_BY
-
mysql only_full_group_by以及其他关于sql_mode原因报错详细解决方案
-
MySQL sql_mode=only_full_group_by错误
-
Mysql高版本报sql_mode=only_full_group_by异常
-
mysql ONLY_FULL_GROUP_BY 报错
-
mysql:sql_mode=“only_full_group_by”
-
MySQL 高版本 sql_mode=only_full_group_by 问题解决办法
-
mysql 高版本 sql_mode=only_full_group_by 问题解决方法
-
mysql - 怎么用thinkphp的查询语言构建这样的select查询?
-
数据库基础知识介绍(MySQL)