mysql 提示SELECT list is not in GROUP BY clause and contains nonaggregated column whic
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.cnf,修改配置文件my.cnf
Windows操作系统中的MySQL配置文件是“my.ini”,位置一般在MySql安装的根目录下,也有可能在隐藏文件夹“ProgramData”下面;而Linux操作系统中的MySQL配置文件是“my.cnf”,位置一般在“/etc/my.cnf”或“/etc/mysql/my.cnf”目录下
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
重启mysql即可。service mysqld restart
更多推荐
所有评论(0)