MySql关闭ONLY_FULL_GROUP_BY模式

ONLY_FULL_GROUP_BY:该模式要求在执行包含GROUP BY子句的SQL查询时,SELECT子句中的非聚合列必须是出现在GROUP BY子句中的字段。

1、先通过系统变量@@sql_mode来确认ONLY_FULL_GROUP_BY模式是否已启用

select @@sql_mode

在查询的结果中,如果有ONLY_FULL_GROUP_BY关键字,就表示已开启。

2、永久关闭 ONLY_FULL_GROUP_BY模式

找到mysql配置文件

windows一般在C:\ProgramData\MySQL\MySQL Server x.x下

inux一般在/etc/mysql/目录下,文件名为my.cnf,或者位于/etc/mysql/mysql.conf.d/目录下,文件名为mysqld.cnf

编辑配置文件,增加以下配置:

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

 (即第一步查询出来的结果,去掉ONLY_FULL_GROUP_BY)

异常及解决:windows环境,如果改完配置文件,mysql服务重启不起来,可能是文件编码问题,另存为 ANSI编码文件,替换原来的配置文件即可。

你可能感兴趣的:(mysql,数据库)