which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mod

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

重启数据库。

 

每天努力一点,每天都在进步。

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