Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"
MySQL查询、设置配置:
查看参数:SHOW VARIABLES;
SHOW VARIABLES WHERE variable_name like '%sql_mode%';
设置参数:SET GLOBAL 参数名称=value;
如设置数据库最大连接数为:SET GLOBAL max_connections=1000。
方案1、
SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
在这里设置的值,是通过select @@sql_mode得到的结果,去掉ONLY_FULL_GROUP_BY得到的。以自己的配置为主,只要去掉ONLY_FULL_GROUP_BY就好。
方案2、
通过更改my.cnf实现。本质上和2是一样的,都是关闭ONLY_FULL_GROUP_BY模式。我是通过yum安装的mysql,所以直接编辑/etc/my.cnf,在文件的最后加上
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
然后通过
ystemctl restart mysqld.service
重启数据库。