MySQL中出现sql_mode=only_full_group_by问题解决

问题描述:

在 MySQL 5.7 以上的版本中 sql_mode 新加入了 only_full_group_by,导致我们在使用 group by 函数的时候,则会报错

举例说明:

SELECT
	* 
FROM
	sys_user_info 
GROUP BY
	sex

解决方法:

方法一:

修改 sql 语句为:

SELECT
	any_value ( id ) AS id,
	any_value ( `name` ) AS `name`,
	sex 
FROM
	sys_user_info 
GROUP BY
	sex

对于在 GROUP BY 语句中的字段,可以不用加 any_value,否则需要加上 any_value,但是这种方法对于我们已经开发好的项目,需要大量地去修改 sql 语句,所以很麻烦

方法二:

找到 /etc/my.cnf 文件,加入内容:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

修改后如下:
修改后

重启MySQL:

systemctl restart mysqld.service

如您在阅读中发现不足,欢迎留言!!!

Asurplus、 CSDN认证博客专家 博客专家 全栈开发
书山有路勤为径,学海无涯苦作舟!
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页