MySQL5.7 group by新特性報(bào)錯(cuò)1055的解決辦法
項(xiàng)目中本來使用的是mysql5.6進(jìn)行開發(fā),切換到5.7之后,突然發(fā)現(xiàn)原來的一些sql運(yùn)行都報(bào)錯(cuò),錯(cuò)誤編碼1055,錯(cuò)誤信息和sql_mode中的“only_full_group_by“有關(guān),到網(wǎng)上看了原因,說是mysql5.7中only_full_group_by這個(gè)模式是默認(rèn)開啟的
解決辦法大致有兩種:
一:在sql查詢語句中不需要group by的字段上使用any_value()函數(shù)
當(dāng)然,這種對(duì)于已經(jīng)開發(fā)了不少功能的項(xiàng)目不太合適,畢竟要把原來的sql都給修改一遍
二:修改my.cnf(windows下是my.ini)配置文件,刪掉only_full_group_by這一項(xiàng)
我們項(xiàng)目的mysql安裝在ubuntu上面,找到這個(gè)文件打開一看,里面并沒有sql_mode這一配置項(xiàng),想刪都沒得刪。
當(dāng)然,還有別的辦法,打開mysql命令行,執(zhí)行命令
select @@sql_mode
這樣就可以查出sql_mode的值,復(fù)制這個(gè)值,在my.cnf中添加配置項(xiàng)(把查詢到的值刪掉only_full_group_by這個(gè)選項(xiàng),其他的都復(fù)制過去):
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
如果 [mysqld] 這行被注釋掉的話記得要打開注釋。然后重重啟mysql服務(wù)
注:使用命令
set sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
這樣可以修改一個(gè)會(huì)話中的配置項(xiàng),在其他會(huì)話中是不生效的。
以上所述是小編給大家介紹的MySQL5.7 group by新特性報(bào)錯(cuò)1055的解決辦法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- mysql5.7同時(shí)使用group by和order by報(bào)錯(cuò)問題
- mysql報(bào)錯(cuò)sql_mode=only_full_group_by解決
- 高版本Mysql使用group?by分組報(bào)錯(cuò)的解決方案
- MySQL報(bào)錯(cuò):sql_mode=only_full_group_by的4種輕松解決方法(含舉例)
- MySQL運(yùn)行報(bào)錯(cuò):“Expression?#1?of?SELECT?list?is?not?in?GROUP?BY?clause?and?contains?nonaggre”解決方法
- Mysql5.7及以上版本 ONLY_FULL_GROUP_BY報(bào)錯(cuò)的解決方法
- 解決大于5.7版本mysql的分組報(bào)錯(cuò)Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated
- mysql高版本(8.0+)group_by報(bào)錯(cuò)的處理方法
相關(guān)文章
生產(chǎn)環(huán)境MySQL索引時(shí)效的排查過程
這篇文章主要介紹了生產(chǎn)環(huán)境MySQL索引時(shí)效的排查過程,文章根據(jù)SQL查詢耗時(shí)特別長(zhǎng),看了執(zhí)行計(jì)劃發(fā)現(xiàn)沒有走索引的問題展開詳細(xì)介紹,需要的朋友可以參考一下2022-04-04帶你學(xué)習(xí)MySQL執(zhí)行計(jì)劃
前面文章,我們學(xué)習(xí)了 MySQL 慢日志相關(guān)內(nèi)容,當(dāng)我們篩選得到具體的慢 SQL 后,就要想辦法去優(yōu)化啦。優(yōu)化 SQL 的第一步應(yīng)該是讀懂 SQL 的執(zhí)行計(jì)劃。本篇文章,我們一起來學(xué)習(xí)下 MySQL explain 執(zhí)行計(jì)劃相關(guān)知識(shí)。2021-05-05MySQL分庫分表動(dòng)態(tài)擴(kuò)容縮容方式
MySQL分庫分表動(dòng)態(tài)擴(kuò)容縮容方案,通過選擇數(shù)據(jù)庫中間件,設(shè)計(jì)分庫分表方案,進(jìn)行環(huán)境測(cè)試,完成單庫單表到分庫分表的遷移,實(shí)現(xiàn)雙寫方案,并上線提供服務(wù),擴(kuò)容時(shí),通過增加數(shù)據(jù)庫服務(wù)器,呈倍數(shù)擴(kuò)容,由DBA負(fù)責(zé)庫表遷移,無需修改路由規(guī)則,即可基于新的資源提供服務(wù)2025-02-02mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02MySQL中隱式轉(zhuǎn)換的踩坑記錄以及解決方法分享
這篇文章主要和大家分享一個(gè)MySQL隱式轉(zhuǎn)換時(shí)踩過的坑,差點(diǎn)把服務(wù)器整崩潰了,以及最后的解決辦法。文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-11-11