解決MySql版本問(wèn)題sql_mode=only_full_group_by
MySql版本問(wèn)題sql_mode=only_full_group_by
查看sql_mode
select @@sql_mode
查詢出來(lái)的值為:
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
在查出結(jié)果中可以看到里面包含了ONLY_FULL_GROUP_BY,因此我們要講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';
上面是改變了全局sql_mode,對(duì)于新建的數(shù)據(jù)庫(kù)有效。對(duì)于已存在的數(shù)據(jù)庫(kù),則需要在對(duì)應(yīng)的數(shù)據(jù)下執(zhí)行
set sql_mode ='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這種方式是我個(gè)人比較喜歡的.
打開(kāi)配置文件mysql.cnf
sudo vi /etc/mysql/mysql.cnf
添加配置
sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
重啟mysql
sudo service mysql restart
進(jìn)入mysql查看:
SELECT @@sql_mode;
Windows
在Windows修改mysql安裝目錄下面配置未見(jiàn) my.ini,在文件中添加
[mysqld] sql_mode =STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_mode=only_full_group_by以及多種解決方案
出錯(cuò)的sql情況
// mysql SELECT ?? ?*? FROM ?? ?table t GROUP BY ?? ?t.mobile_no
提示出錯(cuò):*** which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
原因:
mysql 5.7版本以上sql_mode新加入了only_full_group_by
解決方案1
修改sql_mode(容易被懟,因?yàn)榇蠖喽际窃谛薷娜值膕ql_mode)
查看:
select @@sql_mode;
修改:
set @@sql_mode ='';
解決方案2
函數(shù) any_value()
(使用方案一,原本應(yīng)該是錯(cuò)的sql語(yǔ)句依然執(zhí)行成功,但有時(shí)特殊情況,需要在select 下查詢除group以外的值)
SELECT ?? ?any_value(t.id), ?? ?t.mobile_no FROM ?? ?table t GROUP BY ?? ?t.mobile_no
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 解決MySQL 5.7.9版本sql_mode=only_full_group_by問(wèn)題
- MySql版本問(wèn)題sql_mode=only_full_group_by的完美解決方案
- MySQL錯(cuò)誤提示:sql_mode=only_full_group_by完美解決方案
- mysql報(bào)錯(cuò)sql_mode=only_full_group_by解決
- mysql怎么關(guān)閉sql_mode=ONLY_FULL_GROUP_BY模式
- 解決MySQL this is incompatible with sql_mode=only_full_group_by 問(wèn)題
- mysql 8.0 找不到my.ini配置文件以及報(bào)sql_mode=only_full_group_by解決方案
- 如何解決MySQL?this?is?incompatible?with?sql_mode=only_full_group_by問(wèn)題
- MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問(wèn)題解決
相關(guān)文章
MySQL服務(wù)器 IO 100%的分析與優(yōu)化方案
這篇文章主要給大家介紹了關(guān)于MySQL服務(wù)器 IO 100%的相關(guān)資料,文中通過(guò)示例代碼介紹的介紹非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
基于Mysql+JavaSwing的超市商品管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
本項(xiàng)目是使用Java swing開(kāi)發(fā),可實(shí)現(xiàn)超市管理系統(tǒng)商品列表信息查詢、添加商品信息和修改商品管理以及刪除商品信息和安裝商品信息查詢等功能。界面設(shè)計(jì)和功能比較簡(jiǎn)單基礎(chǔ)、適合作為Java課設(shè)設(shè)計(jì)以及學(xué)習(xí)技術(shù)使用,需要的朋友可以參考一下2021-09-09
Mysql中文數(shù)據(jù)變成問(wèn)號(hào)的解決辦法
mysql存進(jìn)去的數(shù)據(jù),有中文的字段變成了???的樣式,所以本文給大家詳細(xì)介紹了Mysql中文數(shù)據(jù)變成問(wèn)號(hào)的解決辦法,文中通過(guò)圖文結(jié)合的方式講解的非常詳細(xì),需要的朋友可以參考下2023-12-12
MySQL多表查詢與7種JOINS的實(shí)現(xiàn)舉例
最近學(xué)習(xí)了多表查詢,對(duì)此做一些筆記的整理,下面這篇文章主要給大家介紹了關(guān)于MySQL多表查詢與7種JOINS實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
Windows mysql 雙向同步設(shè)置方法 詳細(xì)篇
如果你需要windows mysql 主、備機(jī)雙向同步環(huán)境,可按照以下步驟進(jìn)行操作2011-05-05
mysql server 5.7.20 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql server 5.7.20 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09

