mysql 提示SELECT list is not in GROUP BY clause and contains nonaggregated column whic

原因

SELECT 列表的表达式结果不在 GROUP BY 子句中,或者  GROUP BY 子句中值和结果不匹配

如下图列表是四个值但是group by只有一个值这种情况:

解决方法:

临时方案

查询sql_mode:

sql客户端执行下面语句:

select @@session.sql_mode;

查出的值,删除ONLY_FULL_GROUP_BY,或者直接使用下面sql重新设置sql_mode

set @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
 

但是此方法mysql重启后可能会恢复

永久方法

找到my.***f,修改配置文件my.***f

Windows操作系统中的MySQL配置文件是“my.ini”,位置一般在MySql安装的根目录下,也有可能在隐藏文件夹“ProgramData”下面;而Linux操作系统中的MySQL配置文件是“my.***f”,位置一般在“/etc/my.***f”或“/etc/mysql/my.***f”目录下

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
 

 重启mysql即可。
service mysqld restart

转载请说明出处内容投诉
CSS教程_站长资源网 » mysql 提示SELECT list is not in GROUP BY clause and contains nonaggregated column whic

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买