解決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è)人比較喜歡的.
打開配置文件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安裝目錄下面配置未見 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)文章
Windows平臺(tái)配置5.7版本+MySQL數(shù)據(jù)庫(kù)服務(wù)
這篇文章主要介紹了Windows平臺(tái)配置5.7版本+MySQL數(shù)據(jù)庫(kù)服務(wù)的方法,包括初始化root用戶密碼password的過(guò)程以及兩個(gè)常見問(wèn)題的解決方法,需要的朋友參考下吧2017-06-06MySQL5.6遷移到DM8的實(shí)現(xiàn)示例
本文主要介紹了MySQL5.6遷移到DM8的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08MySQL關(guān)系型數(shù)據(jù)庫(kù)事務(wù)的ACID特性與實(shí)現(xiàn)
這篇文章主要介紹了MySQL關(guān)系型數(shù)據(jù)庫(kù)事務(wù)的ACID特性與實(shí)現(xiàn),ACID?是為保證事務(wù)transaction是正確可靠的,具備原子性、一致性、隔離性、持久性等特性2022-07-07linux mysql 報(bào)錯(cuò):MYSQL:The server quit&nbs
mysql 報(bào)錯(cuò):MYSQL:The server quit without updating PID file。以下是可能的原因與解決方法2013-02-02linux mysql忘記密碼的多種解決或Access denied for user ''root''@''local
linux mysql忘記密碼的多種解決方法。2009-07-07mysql死鎖(dead lock)與鎖等待(lock wait)的出現(xiàn)解決
死鎖和鎖等待是數(shù)據(jù)庫(kù)運(yùn)維中常見的問(wèn)題,區(qū)別在于死鎖會(huì)自動(dòng)解除,而鎖等待需要手動(dòng)處理,本文就來(lái)介紹一下mysql死鎖(dead lock)與鎖等待(lock wait),感興趣的可以了解一下2024-09-09MySQL的從庫(kù)Seconds_Behind_Master延遲總結(jié)
這篇文章主要介紹了MySQL的從庫(kù)Seconds_Behind_Master延遲的相關(guān)資料,需要的朋友可以參考下2021-08-08通過(guò)yum方式安裝mySql數(shù)據(jù)庫(kù)的全過(guò)程
當(dāng)工作需要部署mysql時(shí),通過(guò)手動(dòng)上傳安裝包以及依賴包的方式安裝mysql會(huì)比較麻煩,可以添加官方y(tǒng)um源,來(lái)實(shí)現(xiàn)自動(dòng)安裝依賴,方便快捷,下面這篇文章主要給大家介紹了關(guān)于通過(guò)yum方式安裝mySql數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2022-07-07