最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql高版本(8.0+)group_by報錯的處理方法

 更新時間:2023年09月03日 16:21:29   作者:*鄭*  
本文主要介紹了mysql高版本(8.0+)group_by報錯的處理方法,這個錯誤一般發(fā)生在mysql 5.7以及 5.7以上的版本中,本文就來介紹一下兩種解決方法,感興趣的可以了解一下

1. 原因

這個錯誤一般發(fā)生在mysql 5.7以及 5.7以上的版本中,其原因是mysql的默認配置中,sql_mode=“ONLY_FULL_GROUP_BY” 這個配置嚴格執(zhí)行了 ‘SQL92標準’,查詢字段沒有在group by 字段后同時出現(xiàn),那么sql語句就不合法,就會拋出錯誤

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'xxx' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

這是由于MySQL高版本默認啟用了sql_mode的only_full_group_by模式,對于GROUP BY操作,要求SELECT語句中的字段必須出現(xiàn)在GROUP BY子句中或者使用聚合函數(shù)進行處理。否則就會報上述錯誤。

2. 處理方法

連接mysql庫,執(zhí)行一下語句,查看sql_mode

select @@GLOBAL.sql_mode;

2.1 臨時方法,重啟后失效

SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';

2.2 修改配置my.ini文件

在[mysqld]下面添加以下代碼

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

3. 對查詢結(jié)果中的字段應(yīng)用聚合函數(shù)

若不能修改MySQL的配置文件,或者需要在特定場景使用原始的sql_mode值,我們也可以嘗試在查詢語句中對未出現(xiàn)在GROUP BY子句中的字段應(yīng)用聚合函數(shù)來解決報錯問題。

例如:

SELECT user_id, SUM(score) FROM scores GROUP BY user_id;

該語句會報錯,因為SELECT語句中的score字段未出現(xiàn)在GROUP BY子句中。但是,我們可以嘗試使用聚合函數(shù):

SELECT user_id, MAX(score) FROM scores GROUP BY user_id;

該語句中的score字段被應(yīng)用了MAX聚合函數(shù),這樣就符合了only_full_group_by模式的要求,不會報錯。

示例

下面提供兩個具體的示例來展示如何使用上述解決方案。假設(shè)我們有如下的scores數(shù)據(jù)表:

id   user_id   score
1    100      88
2    100      93
3    101      73
4    102      85
5    102      91

示例1:修改sql_mode參數(shù)值

我們可以通過如下步驟來修改MySQL的sql_mode參數(shù):

打開MySQL的配置文件my.cnf或my.ini。

找到[mysqld]節(jié)點下的sql_mode參數(shù)(可能會有多個)。

將其值修改為:sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION。

保存文件并重啟MySQL服務(wù)。

使用如下SQL查詢語句,測試是否能正確查詢出score字段的平均值:

SELECT AVG(score) FROM scores GROUP BY user_id;

示例2:使用聚合函數(shù)

在不修改MySQL的sql_mode參數(shù)的情況下,我們可以改變查詢語句,使用聚合函數(shù)來解決only_full_group_by模式帶來的限制。

例如,下列SQL語句查詢出每個用戶的最小成績:

SELECT user_id, MIN(score) FROM scores GROUP BY user_id;

在這個查詢語句中,score字段被應(yīng)用了MIN聚合函數(shù),符合only_full_group_by模式的要求。因此可以正常執(zhí)行,并正確返回結(jié)果。

到此這篇關(guān)于mysql高版本(8.0+)group_by報錯的處理方法的文章就介紹到這了,更多相關(guān)mysql group_by報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot日志的使用與多個日志框架沖突問題及解決

    springboot日志的使用與多個日志框架沖突問題及解決

    文章介紹了日志級別、日志分類、logback、log4j、log4j2的使用方法,并討論了統(tǒng)一日志標準的重要性,還提到了各種日志類Jar包的用途,以及如何實現(xiàn)SLF4J門面以兼容不同的日志框架
    2025-02-02
  • SpringBoot全局異常處理方式

    SpringBoot全局異常處理方式

    本文詳細介紹了Spring?Boot中異常處理的多種方案,包括基于請求轉(zhuǎn)發(fā)、異常處理器、過濾器等方式,并對其特點、實現(xiàn)方式和適用場景進行了詳細介紹,作者推薦了基于請求轉(zhuǎn)發(fā)和異常處理器+請求轉(zhuǎn)發(fā)補充的方案,認為它們能實現(xiàn)統(tǒng)一的全局異常處理,并能自定義統(tǒng)一響應(yīng)信息格式
    2024-12-12
  • java開發(fā)中防止重復(fù)提交的幾種解決方案

    java開發(fā)中防止重復(fù)提交的幾種解決方案

    我們?nèi)粘i_發(fā)中有很多的應(yīng)用場景都會遇到重復(fù)提交問題,下面這篇文章主要給大家介紹了關(guān)于java開發(fā)中防止重復(fù)提交的幾種解決方案,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • 在IDEA中配置tomcat并創(chuàng)建tomcat項目的圖文教程

    在IDEA中配置tomcat并創(chuàng)建tomcat項目的圖文教程

    這篇文章主要介紹了在IDEA中配置tomcat并創(chuàng)建tomcat項目的圖文教程,需要的朋友可以參考下
    2020-07-07
  • 基于Spring Boot保護Web應(yīng)用程序

    基于Spring Boot保護Web應(yīng)用程序

    這篇文章主要介紹了基于Spring Boot保護Web應(yīng)用程序,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 帶你輕松了解Modbus協(xié)議

    帶你輕松了解Modbus協(xié)議

    這篇文章主要給大家介紹了關(guān)于Modbus協(xié)議的相關(guān)資料,此協(xié)議定義了一個控制器能認識使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進行通信的,需要的朋友可以參考下
    2021-11-11
  • java中double強制轉(zhuǎn)換int引發(fā)的OOM問題記錄

    java中double強制轉(zhuǎn)換int引發(fā)的OOM問題記錄

    這篇文章主要介紹了java中double強制轉(zhuǎn)換int引發(fā)的OOM問題記錄,本文給大家分享問題排查過程,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • Java如何定位進程中占用CPU或內(nèi)存最多的線程

    Java如何定位進程中占用CPU或內(nèi)存最多的線程

    在排查?Java?性能問題時,定位占用?CPU?或內(nèi)存最多的線程是關(guān)鍵步驟,本文為大家介紹了針對兩種場景的具體排查方法,希望對大家有一定的幫助
    2025-05-05
  • java文字轉(zhuǎn)語音播報功能的實現(xiàn)方法

    java文字轉(zhuǎn)語音播報功能的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于java文字轉(zhuǎn)語音播報功能的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Java中的遠程方法調(diào)用之RPC使用

    Java中的遠程方法調(diào)用之RPC使用

    本文介紹了RPC的基本概念、核心思想及其在分布式系統(tǒng)中的作用,重點講解了Java中的三種RPC實現(xiàn)方式:RMI、Hessian和Dubbo,分別從適用場景、核心特點等方面做了對比對比較,并并提供了其基本實現(xiàn)代碼示例,總結(jié)了各框架的優(yōu)缺點,為實際開發(fā)中選擇合適的技術(shù)棧提供了參考
    2026-05-05

最新評論

阳曲县| 武义县| 镇沅| 株洲市| 惠水县| 邵阳县| 沧源| 马边| 行唐县| 金昌市| 任丘市| 红原县| 贺州市| 水富县| 龙游县| 怀来县| 彭水| 桐乡市| 碌曲县| 年辖:市辖区| 雷州市| 文安县| 平邑县| 新建县| 德阳市| 囊谦县| 郴州市| 东阿县| 高要市| 临武县| 苗栗县| 山阳县| 华池县| 玛沁县| 陇南市| 沐川县| 潮安县| 马公市| 隆昌县| 涪陵区| 永靖县|