list is not in GROUP BY clause and contains nonaggre的問題

HuDu發表於2021-02-26

問題出現的原因:

MySQL 5.7.5及以上功能依賴檢測功能。如果啟用了ONLY_FULL_GROUP_BY SQL模式(預設情況下),MySQL將拒絕選擇列表,HAVING條件或ORDER BY列表的查詢引用在GROUP BY子句中既未命名的非集合列,也不在功能上依賴於它們。(5.7.5之前,MySQL沒有檢測到功能依賴關係,預設情況下不啟用ONLY_FULL_GROUP_BY。)

解決方法一:

用sql查詢:

select @@global.sql_mode
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

去掉ONLY_FULL_GROUP_BY,重新設定值。

set @@global.sql_mode
='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

解決方法二:

$ sudo vim /etc/mysql/conf.d/mysql.cnf
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

滾動到檔案底部複製並貼上

[mysqld] 
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

儲存並退出輸入模式

$ sudo service mysql restart
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章