mysql5.7 only_full_group_by问题

5.7及后续版本只能查询被group字段 其它未被分组的字段不能查询

解决方法

改变写法
5.7前写法

SELECT max(id), user_name FROM sys_user

5.7及后续版本写法 使用any_value函数抑制

SELECT max(id), any_value(user_name) FROM sys_user

修改为5.7前的配置

# 查询所有mode 把ONLY_FULL_GROUP_BY去掉即修改成功
SELECT @@GLOBAL.sql_mode;

# 为了重启后依然有效 需修改配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 在[mysqld]中修改 sql_mode 没有此属性手动添加即可
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章