欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql8報錯this is incompatible with sql_mode=only_full_group_by問題

 更新時間:2024年01月26日 16:02:20   作者:XL's妃妃  
這篇文章主要介紹了Mysql8報錯this is incompatible with sql_mode=only_full_group_by問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、報錯問題

1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column '字段名' 
which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

大致意思:

SELECT列表的表達(dá)式#2不在GROUP BY子句中,并且包含非聚合列的jsfwpt.o。

它在功能上不依賴于GROUP BY子句中的列;這與sql_mode=only_full_group_by不兼容

二、導(dǎo)致的原因

1、如果mysql是高版本,當(dāng)執(zhí)行g(shù)roup by時,select的字段不屬于group by的字段的話,sql語句就會報錯

2、這個錯誤發(fā)生在mysql 5.7.5 版本及以上版本會出現(xiàn)的問題:mysql 5.7.5版本以上默認(rèn)的sql配置是:sql_mode=“ONLY_FULL_GROUP_BY”,這個配置嚴(yán)格執(zhí)行了"SQL92標(biāo)準(zhǔn)"。很多從5.6升級到5.7時,為了語法兼容,大部分都會選擇調(diào)整sql_mode,使其保持跟5.6一致,為了盡量兼容程序。

3、在sql執(zhí)行時,出現(xiàn)該原因,簡單來說就是:由于開啟了ONLY_FULL_GROUP_BY的設(shè)置,如果select 的字段不在 group by 中,并且select 的字段未使用聚合函數(shù)(SUM,AVG,MAX,MIN等)的話,那么這條sql查詢是被mysql認(rèn)為非法的,會報錯誤…

三、檢查是否是此原因

1、查看sql_mode

select @@GLOBAL.sql_mode;

2、執(zhí)行結(jié)果:sql_mode開啟了only_full_group_by 屬性

四、解決辦法

方法1、使用函數(shù)ANY_VALUE()

使用ANY_VALUE(<字段名>)將報錯的字段包裹起來

  • MySQL有any_value(field)函數(shù),它主要的作用就是抑制ONLY_FULL_GROUP_BY值被拒絕。
  • 這樣sql語句不管是在ONLY_FULL_GROUP_BY模式關(guān)閉狀態(tài)還是在開啟模式都可以正常執(zhí)行,不被mysql拒絕。

方法2、臨時修改sql_mode

方法2:僅用于臨時去掉ONLY_FULL_GROUP_BY,重新設(shè)置值,重啟mysql之后此方法就會失效

在已創(chuàng)建的數(shù)據(jù)庫中執(zhí)行:

SET sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

修改mysql全局的sql_mode執(zhí)行:

SET @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

方法3、永久修改sql_mode

通過修改mysql配置文件my.ini解決

windows系統(tǒng)MySQL8永久修改sql_mode的方式

1、在MySQL安裝的目錄所在的分區(qū)根目錄下,“查看“——勾選顯示“隱藏的項目”,

2、my.ini的路徑:ProgramData\MySQL\MySQL Server 8.0

3、打開my.ini文件

在[mysqld]下面找sql-mode,修改為如下內(nèi)容:(沒有sql-mode就追加在[mysqld]下面)

sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

4、重啟mysql

liunx上的修改方式

1、文件路徑一般在:/etc/my.cnf,/etc/mysql/my.cnf

2、my.ini的具體修改方法略:與windows上一樣

五、驗證

sql_mode已經(jīng)沒有only_full_group_by 屬性了

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • mysql實現(xiàn)merge into問題

    mysql實現(xiàn)merge into問題

    文章介紹了在數(shù)據(jù)庫操作中,如何使用`REPLACE INTO`和`INSERT INTO ON DUPLICATE KEY UPDATE`語句進(jìn)行數(shù)據(jù)更新和插入操作,如果不想創(chuàng)建唯一性索引,可以通過存儲過程實現(xiàn),文章通過實驗和驗證,展示了這兩種方法的實際效果
    2024-12-12
  • Linux系統(tǒng)中MySQL的常用操作命令

    Linux系統(tǒng)中MySQL的常用操作命令

    本文給大家匯總介紹了下載Linux系統(tǒng)中操作mysql的一些常用的命令,非常實用,有需要的小伙伴可以參考下
    2018-02-02
  • 詳細(xì)介紹mysql中l(wèi)imit與offset的用法

    詳細(xì)介紹mysql中l(wèi)imit與offset的用法

    mysql查詢使用select命令,配合limit,offset參數(shù)可以讀取指定范圍的記錄,下面這篇文章主要給大家介紹了關(guān)于mysql中l(wèi)imit與offset用法的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 為什么MySQL數(shù)據(jù)庫索引選擇使用B+樹?

    為什么MySQL數(shù)據(jù)庫索引選擇使用B+樹?

    今天小編就為大家分享一篇關(guān)于為什么MySQL數(shù)據(jù)庫索引選擇使用B+樹?,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • mysql二進(jìn)制日志文件恢復(fù)數(shù)據(jù)庫

    mysql二進(jìn)制日志文件恢復(fù)數(shù)據(jù)庫

    喜歡的在服務(wù)器或者數(shù)據(jù)庫上直接操作的兄弟們你值得收藏下!不然你就悲劇了。-----(當(dāng)然我也是在網(wǎng)上搜索的資料!不過自己測試通過了的!)
    2014-08-08
  • 解決MySQL innoDB間隙鎖產(chǎn)生的死鎖問題

    解決MySQL innoDB間隙鎖產(chǎn)生的死鎖問題

    線上經(jīng)常偶發(fā)死鎖問題,當(dāng)時處理一張表,也沒有聯(lián)表處理,但是有兩個mq入口,并且消息體存在一樣的情況,但是是偶發(fā)的,又模擬不出來什么場景會導(dǎo)致死鎖,只能進(jìn)行代碼分析,問題還原的方式去排查問題,本文給大家介紹了如何解決MySQL innoDB間隙鎖產(chǎn)生的死鎖問題
    2023-10-10
  • 美團(tuán)網(wǎng)技術(shù)團(tuán)隊分享的MySQL索引及慢查詢優(yōu)化教程

    美團(tuán)網(wǎng)技術(shù)團(tuán)隊分享的MySQL索引及慢查詢優(yōu)化教程

    這篇文章主要介紹了美團(tuán)網(wǎng)技術(shù)團(tuán)隊分享的MySQL索引及慢查詢優(yōu)化教程,結(jié)合了實際的磁盤IO情況對一些優(yōu)化方案作出了分析,十分推薦!需要的朋友可以參考下
    2015-11-11
  • Linux下安裝MySQL教程

    Linux下安裝MySQL教程

    上一篇文章詳細(xì)介紹windows下MySQL安裝教程,這篇就從最基本的安裝MySQL-Linux環(huán)境開始,文章為繞MySQL安裝展開內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • MySQL分區(qū)表和分桶表的操作詳解

    MySQL分區(qū)表和分桶表的操作詳解

    這篇文章主要介紹了MySQL分區(qū)表和分桶表的操作,分區(qū)表和分桶表都是數(shù)據(jù)庫中的表,用于對數(shù)據(jù)進(jìn)行分區(qū)或分桶存儲,以提高數(shù)據(jù)庫的性能和查詢效率,需要詳細(xì)了解可以參考下文
    2023-05-05
  • 連接MySql速度慢的解決方法(skip-name-resolve)

    連接MySql速度慢的解決方法(skip-name-resolve)

    這篇文章主要介紹了連接MySql速度慢的解決方法(skip-name-resolve),需要的朋友可以參考下
    2015-09-09

最新評論