高版本Mysql使用group?by分組報(bào)錯(cuò)的解決方案
Mysql5.7版本以上對(duì)group by 分組有了新需求,要求group by 后的字段要與select后查詢的字段一致,否則就會(huì)報(bào)錯(cuò),報(bào)錯(cuò)信息如下:
#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
通過(guò)報(bào)錯(cuò)分析是由于group by 后的分組字段與查詢字段不一致導(dǎo)致。
解決方案:
方法一:補(bǔ)全group by 后字段(不推薦這種方法,有時(shí)要查詢的字段很多而且字段的內(nèi)容不能保證不重復(fù),如果全部補(bǔ)齊會(huì)造成查詢數(shù)據(jù)丟失)。
方法二:修改配置
1)使用navicat管理工具連接mysql數(shù)據(jù)庫(kù)
打開(kāi)navicat管理工具,按F6打開(kāi)命令界面,依次輸入以下語(yǔ)句
select @@global.sql_mode;
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';`
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
截圖如下:

再重新執(zhí)行就會(huì)發(fā)現(xiàn)不再報(bào)錯(cuò)。
2)使用cmd命令行更改
按win+r打開(kāi)運(yùn)行界面,輸入cmd打開(kāi)命令行界面

打開(kāi)后切換目錄到mysql安裝包的bin目錄下,具體操作如下圖(根據(jù)自己路徑切換)

連接數(shù)據(jù)庫(kù),輸入mysql -u root -p,按回車再輸入數(shù)據(jù)庫(kù)密碼
連接成功后再依次輸入以下語(yǔ)句
select @@global.sql_mode;
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
截圖如下:

至此配置結(jié)束
總結(jié)
到此這篇關(guān)于高版本Mysql使用group by分組報(bào)錯(cuò)的解決方案的文章就介紹到這了,更多相關(guān)Mysql使用group by分組報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談開(kāi)啟magic_quote_gpc后的sql注入攻擊與防范
通過(guò)啟用php.ini配置文件中的相關(guān)選項(xiàng),就可以將大部分想利用SQL注入漏洞的駭客拒絕于門(mén)外2012-01-01
MySQL、Oracle數(shù)據(jù)庫(kù)如何查看最大連接數(shù)和當(dāng)前連接數(shù)
在使用MySQL、Oracle數(shù)據(jù)庫(kù)時(shí)了解最大連接數(shù)和當(dāng)前數(shù)據(jù)庫(kù)連接數(shù)對(duì)于優(yōu)化數(shù)據(jù)庫(kù)性能和確保系統(tǒng)穩(wěn)定性非常重要,這篇文章主要給大家介紹了關(guān)于MySQL、Oracle數(shù)據(jù)庫(kù)如何查看最大連接數(shù)和當(dāng)前連接數(shù)的相關(guān)資料,需要的朋友可以參考下2024-04-04
MySQL執(zhí)行事務(wù)的語(yǔ)法與流程詳解
這篇文章主要介紹了MySQL執(zhí)行事務(wù)的語(yǔ)法與流程的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
mysql數(shù)據(jù)庫(kù)單表最大存儲(chǔ)依據(jù)詳解
這篇文章主要為大家介紹了mysql數(shù)據(jù)庫(kù)單表最大存儲(chǔ)的依據(jù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
MySQL關(guān)于sql_mode解析與設(shè)置講解
今天小編就為大家分享一篇關(guān)于MySQL關(guān)于sql_mode解析與設(shè)置講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
mysql中l(wèi)ower_case_table_names=1參數(shù)的作用
lower_case_table_names是MySQL數(shù)據(jù)庫(kù)中的一個(gè)系統(tǒng)變量,本文主要介紹了mysql中l(wèi)ower_case_table_names=1參數(shù)的作用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08

