MySQL出現(xiàn)this is incompatible with sql_mode=only_full_group_by錯誤的解決辦法
目錄
- 這個就是錯誤截圖
- 出現(xiàn)原因: MySQL的版本問題
- 解決辦法:兩種
- 第一種:修改MySQL的配置文件
- 第二種方法:修改自己的sql
- 總結
這個就是錯誤截圖
出現(xiàn)原因: MySQL的版本問題
MySQL 5.7.5以上版本,實現(xiàn)了對功能依賴的檢測。如果啟用了only_full_group_by SQL模式(默認啟用),那么MySQL就會拒絕執(zhí)行 select list、HAVING condition或ORDER BY list引用既不在GROUP BY子句中被命名,也不在功能上依賴于GROUP BY列(由GROUP BY列唯一確定)的未聚合列的查詢。
從MySQL5.7.5開始,默認的SQL模式包括only_full_group_by。(在5.7.5之前,MySQL沒有檢測到功能依賴項,only_full_group_by在默認情況下是不啟用的。關于前5.7.5行為的描述,請參閱MySQL 5.6參考手冊。)
解決辦法:兩種
第一種:修改MySQL的配置文件
1. 連接數(shù)據(jù)庫 輸入下面命令,查詢sql的模式
select @@sql_mode;
2. 修改數(shù)據(jù)庫配置my.ini文件
在你安裝數(shù)據(jù)庫的文件夾下的my.ini文件
增加一行代碼:
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服務
備注:我個人覺得最好不用這樣吧 因為項目可能其他地方或許用到了這種模式,最好的方法是不要改動mysql的配置。正所謂能跑起來就不要動他的原理!
第二種方法:修改自己的sql
每個字段前加上any_value() 這種方法比較好 只需要修改sql 不會影響到其他問題
修改前:
SELECT id AS a, name AS b, age AS cFROM user
修改后:
SELECT any_value(id)AS a, any_value(name)AS b, any_value(age)AS cFROM user
總結
到此這篇關于MySQL出現(xiàn)this is incompatible with sql_mode=only_full_group_by錯誤的解決辦法的文章就介紹到這了,更多相關this is incompatible with sql_mode=only_full_group_by內容請搜索以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持!
