Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre

原文连接:http://www.javashuo.com/article/p-qwzjvpai-x.htmlhtml

https://blog.csdn.net/allen_tsang/article/details/54892046mysql

MySQL 5.7.5后only_full_group_by成为sql_mode的默认选项之一,这可能致使一些sql语句失效。sql

解决方法
把group by字段group_id设成primary key 或者 unique NOT NULL。这个方法在实际操做中没什么意义。vim

使用函数any_value把报错的字段name包含起来。如,select any_value(name), group_id from game group by group_id。函数

在配置文件my.cnf中关闭sql_mode=ONLY_FULL_GROUP_BY.。msqyl的默认配置是sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION。能够把ONLY_FULL_GROUP_BY去掉,也能够去掉全部选项设置成sql_mode=,若是你确信其余选项不会形成影响的话。.net

vim /etc/my.cnf
复制并粘贴,若有[mysqld],则放到 [mysqld]最后,如没有则放到配置文件最下方便可
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONhtm

wq保存并退出blog

重启MySQLget

相关文章
相关标签/搜索