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

如何解決MySQL?this?is?incompatible?with?sql_mode=only_full_group_by問(wèn)題

 更新時(shí)間:2024年11月20日 09:48:20   作者:?jiǎn)痰じ鉏T  
MySQL的ONLY_FULL_GROUP_BY模式要求在使用GROUP?BY時(shí),SELECT語(yǔ)句中引用的所有列必須在GROUP?BY子句中明確指定,或者是聚合函數(shù)的一部分,本文提供了修改SQL語(yǔ)句、使用聚合函數(shù)、禁用ONLY_FULL_GROUP_BY等解決方法,并強(qiáng)調(diào)了在禁用該模式時(shí)應(yīng)評(píng)估其影響

MySQL this is incompatible with sql_mode=only_full_group_by

代碼示例:

在MySQL中,ONLY_FULL_GROUP_BY 是一個(gè)SQL模式設(shè)置,它要求在使用GROUP BY時(shí),SELECT語(yǔ)句中引用的所有列必須在GROUP BY子句中明確指定,或者是聚合函數(shù)的一部分。

這個(gè)模式的目的是為了防止產(chǎn)生不確定的查詢結(jié)果。

如果你遇到了ONLY_FULL_GROUP_BY的錯(cuò)誤,以下是一些解決方案:

1.修改SQL語(yǔ)句

  • 確保SELECT列表中的所有列要么包含在GROUP BY子句中,要么作為聚合函數(shù)的一部分。
  • 例如,如果你的查詢是這樣的:
SELECT column1, column2 FROM table GROUP BY column1;
  • 你需要將column2也加入到GROUP BY子句中
  • 或者對(duì)column2使用聚合函數(shù)
  • MAX(column2)SUM(column2)

2.使用聚合函數(shù)

  • 對(duì)于SELECT列表中不在GROUP BY子句中的列
  • 可以使用聚合函數(shù),如MAX(), MIN(), SUM(), COUNT()

3.禁用ONLY_FULL_GROUP_BY

  • 你可以在會(huì)話級(jí)別或全局級(jí)別禁用ONLY_FULL_GROUP_BY。
  • 這可以通過(guò)以下命令完成:
SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
  • 或者,你可以修改MySQL的配置文件(例如my.cnfmy.ini
  • 去掉ONLY_FULL_GROUP_BY
[mysqld]
sql_mode = NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  • 修改配置文件后,需要重啟MySQL服務(wù)以使更改生效。

4.使用ANY_VALUE()函數(shù)

  • ANY_VALUE()函數(shù)可以用來(lái)選擇每個(gè)分組的任意值
  • 這在某種程度上可以繞過(guò)ONLY_FULL_GROUP_BY的限制

5.永久修改sql_mode

  • 在某些情況下,如果你不希望每次重啟MySQL服務(wù)后都要重新設(shè)置sql_mode,你可以將更改永久化到MySQL的配置文件中。
  • 請(qǐng)注意,禁用ONLY_FULL_GROUP_BY可能會(huì)讓你的查詢結(jié)果變得不確定,因?yàn)镸ySQL將不再?gòu)?qiáng)制要求GROUP BY子句包含所有非聚合列。
  • 因此,在禁用這個(gè)模式之前,最好先評(píng)估一下它對(duì)你的查詢邏輯和結(jié)果的影響。

如果你正在使用MySQL 8.0或更高版本,并且嘗試修改sql_mode時(shí)遇到了問(wèn)題,比如出現(xiàn)了錯(cuò)誤:

ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

  • 這是因?yàn)樵贛ySQL 8.0及以上版本中,NO_AUTO_CREATE_USER已經(jīng)被移除。
  • 在這種情況下,你需要從sql_mode中移除這個(gè)值。
  • 在處理這個(gè)問(wèn)題時(shí),建議先嘗試修改SQL語(yǔ)句以符合ONLY_FULL_GROUP_BY的要求,因?yàn)檫@是最安全的做法,可以避免潛在的數(shù)據(jù)一致性問(wèn)題。
  • 如果這不可能或者不切實(shí)際,那么再考慮禁用ONLY_FULL_GROUP_BY。

總結(jié)

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

相關(guān)文章

  • MySQL分庫(kù)分表后路由策略設(shè)計(jì)詳情

    MySQL分庫(kù)分表后路由策略設(shè)計(jì)詳情

    這篇文章主要介紹了MySQL分庫(kù)分表后路由策略設(shè)計(jì)詳情,分庫(kù)分表后設(shè)計(jì)到的第一個(gè)問(wèn)題就是,如何選擇路由key,應(yīng)該如何對(duì)key進(jìn)行路由
    2022-08-08
  • MySQL嵌套事務(wù)所遇到的問(wèn)題

    MySQL嵌套事務(wù)所遇到的問(wèn)題

    這篇文章主要介紹了MySQL嵌套事務(wù)所遇到的問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • SQL實(shí)現(xiàn)Excel的10個(gè)常用功能的示例詳解

    SQL實(shí)現(xiàn)Excel的10個(gè)常用功能的示例詳解

    SQL,數(shù)據(jù)分析崗的必備技能,你可以不懂Python,R,不懂可視化,不懂機(jī)器學(xué)習(xí)。但SQL,你必須懂。本文為大家總結(jié)了SQL實(shí)現(xiàn)Excel的10個(gè)常用功能的示例代碼,感興趣的可以了解一下
    2022-07-07
  • sql語(yǔ)句示例之case?when作為where條件

    sql語(yǔ)句示例之case?when作為where條件

    這篇文章主要給大家介紹了關(guān)于sql語(yǔ)句示例之case?when作為where條件的相關(guān)資料,在SQL語(yǔ)句中CASE WHEN子句是根據(jù)條件表達(dá)式的結(jié)果來(lái)執(zhí)行不同的邏輯操作,它使用在WHERE子句中,以根據(jù)特定的條件在查詢結(jié)果中過(guò)濾數(shù)據(jù),需要的朋友可以參考下
    2023-08-08
  • Mysql去重的幾種方式分步講解

    Mysql去重的幾種方式分步講解

    SQL去重是數(shù)據(jù)分析工作中比較常見的一個(gè)場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于SQL去重的3種實(shí)用方法的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • MySQL AUTO_INCREMENT 主鍵自增長(zhǎng)的實(shí)現(xiàn)

    MySQL AUTO_INCREMENT 主鍵自增長(zhǎng)的實(shí)現(xiàn)

    本文主要介紹了MySQL AUTO_INCREMENT 主鍵自增長(zhǎng)的實(shí)現(xiàn),每增加一條記錄,主鍵會(huì)自動(dòng)以相同的步長(zhǎng)進(jìn)行增長(zhǎng),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • MYSQL插入處理重復(fù)鍵值的幾種方法

    MYSQL插入處理重復(fù)鍵值的幾種方法

    當(dāng)unique列在一個(gè)UNIQUE鍵上插入包含重復(fù)值的記錄時(shí),默認(rèn)insert的時(shí)候會(huì)報(bào)1062錯(cuò)誤,MYSQL有三種不同的處理方法,下面我們分別介紹。
    2012-09-09
  • My Sql 1067錯(cuò)誤與編碼問(wèn)題的解決方案

    My Sql 1067錯(cuò)誤與編碼問(wèn)題的解決方案

    My Sql 大部分都是用綠色版(解壓版) 然后注冊(cè)服務(wù)簡(jiǎn)單方便,但是配置文件也很讓人糾結(jié),下面小編給大家?guī)?lái)了My Sql 1067錯(cuò)誤與編碼問(wèn)題的解決方案,感興趣的朋友參考下吧
    2016-11-11
  • mysql id從1開始自增 快速解決id不連續(xù)的問(wèn)題

    mysql id從1開始自增 快速解決id不連續(xù)的問(wèn)題

    這篇文章主要介紹了mysql id從1開始自增 快速解決id不連續(xù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • MySQL 邏輯備份與恢復(fù)測(cè)試的相關(guān)總結(jié)

    MySQL 邏輯備份與恢復(fù)測(cè)試的相關(guān)總結(jié)

    數(shù)據(jù)庫(kù)邏輯備份就是備份軟件按照我們最初所設(shè)計(jì)的邏輯關(guān)系,以數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)對(duì)象為單位,將數(shù)據(jù)庫(kù)中的數(shù)據(jù)按照預(yù)定義的邏輯關(guān)聯(lián)格式一條一條生成相關(guān)的文本文件,以達(dá)到備份的目的。本文將具體介紹MySQL 邏輯備份的相關(guān)概念及如何做恢復(fù)測(cè)試。
    2021-05-05

最新評(píng)論