mysql not in报错_mysql从5.7升级到8.0查询报错Expression #2 of SELECT list is not in GROUP BY...
報(bào)錯(cuò)信息:
Expression #2 of SELECT list is not in GROUP BY clause and contains
nonaggregated column ‘sss.month_id’ which is not functionally
dependent on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by
問題出現(xiàn)的原因:
MySQL 5.7.5及以上功能依賴檢測(cè)功能。如果啟用了ONLY_FULL_GROUP_BY SQL模式(默認(rèn)情況下),MySQL將拒絕選擇列表,HAVING條件或ORDER BY列表的查詢引用在GROUP BY子句中既未命名的非集合列,也不在功能上依賴于它們。(5.7.5之前,MySQL沒有檢測(cè)到功能依賴關(guān)系,默認(rèn)情況下不啟用ONLY_FULL_GROUP_BY。有關(guān)5.7.5之前的行為的說明,請(qǐng)參見“MySQL 5.6參考手冊(cè)”。)
解決辦法(兩種,建議第二種):
一.第一種(這種方式可能不生效):
1.用sql查詢:
select @@global.sql_mode
2.去掉ONLY_FULL_GROUP_BY,重新設(shè)置值。
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';
3.刷新 mysql
flush privileges;
一.第二種(需重啟mysql):
1.編輯mysql配置文件
vi /etc/my.cnf
2.在文件最下面增加以下設(shè)置
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
3.重啟mysql服務(wù)
service mysqld restart
好了,問題解決完畢!有用的話,給個(gè)贊吧!!!
總結(jié)
以上是生活随笔為你收集整理的mysql not in报错_mysql从5.7升级到8.0查询报错Expression #2 of SELECT list is not in GROUP BY...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql_unbuffered_que
- 下一篇: 获取当前窗口是否可见 document.