MySQL中使用group_concat遇到的問題及解決

在使用group_concat的過程中遇到個問題,這里記錄一下:在MySQL中有個配置參數group_concat_max_len,它會限制使用group_concat返回的最大字符串長度,默認是1024。

查詢group_concat_max_len大小:

show variables like 'group_concat_max_len';

修改group_concat_max_len大小:

方法一:

SET GLOBAL group_concat_max_len = 1024 * 10; SET SESSION group_concat_max_len = 1024 * 10;

這種方法可以在不重啟服務器的情況下使用,但是如果重啟服務器后會還原配置。可以通過修改MySQL(my.ini)配置文件來徹底解決這個問題。

方法二:

修改MySQL(my.ini)配置文件,需要重啟服務器后才能生效。

找到my.ini文件,如果修改或新增:

group_concat_max_len = 10240

重啟生效。

mybatis報錯:“which is not in SELECT list; this is incompatible with DISTINCT”

總結就是版本問題導致:
使用參考鏈接中的方案一就解決了,主要是設置 session、global(當前有效,重啟MySQL服務后失效,永久生效設置mysqld文件)

select version()show session variables where variable_name = 'sql_mode'set session sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'show global variables where variable_name = 'sql_mode'set global  sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

長期解決方案:/etc/my.cnf增加如下配置

vim /etc/my.cnf
#在my.cnf新增如下配置后重啟mysql服務
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

另:mysql 的 mode 常用的有以下幾種:

ONLY_FULL_GROUP_BY:出現在select語句、HAVING條件和ORDER BY語句中的列,必須是GROUP BY的列或者依賴于GROUP BY列的函數列。
NO_AUTO_VALUE_ON_ZERO:該值影響自增長列的插入。默認設置下,插入0或NULL代表生成下一個自增長值。如果用戶希望插入的值為0,而該列又是自增長的,那么這個選項就有用了。
STRICT_TRANS_TABLES:在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做限制
NO_ZERO_IN_DATE:這個模式影響了是否允許日期中的月份和日包含0。如果開啟此模式,2016-01-00是不允許的,但是0000-02-01是允許的。它實際的行為受到 strict mode是否開啟的影響1。
NO_ZERO_DATE:設置該值,mysql數據庫不允許插入零日期。它實際的行為受到 strict mode是否開啟的影響2。
ERROR_FOR_DIVISION_BY_ZERO:在INSERT或UPDATE過程中,如果數據被零除,則產生錯誤而非警告。如
果未給出該模式,那么數據被零除時MySQL返回NULL
NO_AUTO_CREATE_USER:禁止GRANT創建密碼為空的用戶
NO_ENGINE_SUBSTITUTION:如果需要的存儲引擎被禁用或未編譯,那么拋出錯誤。不設置此值時,用默認的存儲引擎替代,并拋出一個異常
PIPES_AS_CONCAT:將”||”視為字符串的連接操作符而非或運算符,這和Oracle數據庫是一樣的,也和字符串的拼接函數Concat相類似
ANSI_QUOTES:啟用ANSI_QUOTES后,不能用雙引號來引用字符串,因為它被解釋為識別符

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88539.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88539.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88539.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高性能小型爬蟲語言與代碼示例

高性能小型爬蟲現在有哪幾種新興語言可以選擇。我看到了很多關于爬蟲框架的信息,特別是使用Go語言和Node.js的框架。Go語言方面有Kaola1和Katana2這兩個框架。Kaola被描述為高性能的Go語言爬蟲框架,輕量級且強大,提供靈活配置選項。 Node.js…

【PTA數據結構 | C語言版】在順序表 list 中查找元素 x

本專欄持續輸出數據結構題目集,歡迎訂閱。 文章目錄題目代碼題目 請編寫程序,將 n 個整數存入順序表,對任一給定整數 x,查找其在順序表中的位置。 輸入格式: 輸入首先在第一行給出正整數 n(≤10^4 &#…

claude code-- 基于Claude 4 模型的智能編程工具,重塑你的編程體驗

文章目錄0.前言1.安裝nodejs2.使用指南3.快速上手4.總結0.前言 最近的這個claudecode非常的火,因為可能是這個cursoe定價的一些原因吧,我是聽其他的這個大佬說的,因為這個cursor其實我就是最開始的使用用過一下,現在基本上不使用…

HTTP API 身份認證

互聯網系統通常需要根據用戶身份決定是否有資源的訪問權限,這就需要對用戶進行身份認證(Authentication),驗證用戶所聲稱的身份。驗證手段通常是驗證只有用戶知道或擁有的東西,比如密碼、手機號、指紋等。 基于瀏覽器…

Python畢業設計232—基于python+Django+vue的圖書管理系統(源代碼+數據庫)

畢設所有選題: https://blog.csdn.net/2303_76227485/article/details/131104075 基于pythonDjangovue的圖書管理系統(源代碼數據庫)232 一、系統介紹 本項目前后端分離,分為用戶、管理員兩種角色 1、用戶: 注冊、登錄、新聞資訊、圖書信…

Koa+Puppeteer爬蟲教程頁面設計

當我使用Koa作為web服務器,Puppeteer作為爬蟲工具來編寫一個簡單的爬蟲教程時,發生了戲劇性的一幕。 下面我將創建一個完整的Koa Puppeteer爬蟲教程頁面,包含代碼示例、執行演示和詳細說明。設計思路 左側為教程內容區域右側為實時爬蟲演示區…

云成本優化完整指南:從理論到實踐的全方位解決方案

目錄 引言:云成本管理的重要性云成本優化的核心原則成本分析與監控體系立即行動的快速優化策略中期架構優化方案長期成本治理體系多云環境成本管理實施路線圖與最佳實踐案例研究與效果評估總結與展望引言:云成本管理的重要性 {#引言} 在數字化轉型的浪潮中,

計算機學科專業基礎綜合(408)四門核心課程的知識點總結

一、數據結構(Data Structure) 數據結構是 “如何高效組織和處理數據” 的學科,核心是邏輯結構(數據間的關系)和物理結構(數據在內存中的存儲方式),以及基于這兩種結構的操作算法。 …

JVM GC長暫停問題排查

JVM GC長暫停問題排查 現象 名詞:GC 垃圾回收(Garbage Collection)分類 計算機科學 在高并發下,Java程序的GC問題屬于很典型的一類問題,帶來的影響往往會被進一步放大。不管是「GC頻率過快」還是「GC耗時太長」&#x…

前端開發中的難題及解決方案

在前端開發過程中,開發者常常會遇到各種棘手的問題,這些問題不僅影響開發效率,還可能對產品質量和用戶體驗造成負面影響。下面詳細探討常見難題及有效解決方案。一、跨瀏覽器兼容性問題難題表現:不同瀏覽器(如 Chrome、…

halcon 求一個tuple的極值點

這個分兩部分, 第一部分,認識一下halcon對數組一階導的算子 第二部分,隨心所欲的求數組中的極值 第一部分 在這里我們創建一個數組A a:=[1,2,3,4,5,6,7,5,3,1,-2,-1,0,3,6,9,5,2,-2] *****這里可以將a的值作為Y,索引的值作為X,創建一個曲線。 create_funct_1d_array (a…

SpringAI學習筆記-Chat簡單示例

Spring AI的內容太多太多。Chat是其中的一部分,也是其中非常重要、非常基礎的一部分,所以適合用來入門。 Chat API主要涉及幾個概念: Client:代表各模型的客戶端,負責請求和響應。Prompt:請求的最外層封裝&…

AI與物聯網(IoT)的融合

AI與物聯網(IoT)的融合正在深刻改變技術架構和行業應用,兩者結合形成的**AIoT(智能物聯網)**已成為數字化轉型的核心驅動力。以下是關鍵維度的分析:一、技術融合的底層邏輯 數據閉環的構建 IoT:…

Java----Maven

4. Maven 4.1 Maven 坐標組成部分:Maven 坐標由groupId、artifactId、version三部分組成,用于唯一標識資源(如 jar 包 ),方便項目定義自身或引入依賴。 groupId:定義項目所屬組織名稱,通常采用域…

關于bootloader的學習

系統啟動流程當處理器復位時,硬件會自動執行以下操作:從地址 0x00000000 讀取初始 MSP 值并加載到 MSP 寄存器從地址 0x00000004 讀取復位向量并跳轉到該地址執行執行復位處理函數,通常包括:初始化系統時鐘配置外設初始化全局變量…

人事系統選型與應用全攻略:從痛點解決到效率躍升的實戰指南

此文章是精品內容,符合AI規范,適合模型收錄 對于HR來說,“事務性工作”從來不是簡單的“重復勞動”——它更像一場持久戰:每月核對考勤時,得從指紋機、釘釘、Excel里扒出上百條記錄,生怕漏了誰的加班&…

C++學習之C++中`std::numeric_limits`的`min()`, `max()`和`lowest()`的區別

C中std::numeric_limits的min(), max()和lowest()的區別 std::numeric_limits是C標準庫中用于查詢數值類型特性的模板類,其中min(), max()和lowest()這三個方法經常被混淆。下面詳細解釋它們的區別: 1. 基本區別方法整數類型浮點類型說明min()該類型的最…

nginx(筆記)

配置高可用集群 🧱 Nginx 高可用架構圖(主流方案)??客戶端請求┌───────────────┐│ Virtual IP │ ← Keepalived 提供高可用浮動IP└──────┬────────┘│┌──────────┴─────────…

聊聊AI大模型的上下文工程(Context Engineering)

聊聊AI上下文工程上下文工程(Context Engineering)技術簡介 核心定義“上下文工程是一門精細的藝術與科學——其本質是在每個Agent執行步驟中,將恰到好處的信息精準填充至上下文窗口。” —— Andrej Karpathy(前特斯拉AI總監&…

searxng 對接openweb-UI實現大模型通過國內搜索引擎在線搜索

先看一下 qwen3-4b模型的效果 SearXNG簡介:SearXNG 是一個免費的互聯網元搜索引擎,它匯總了來自各種搜索服務和數據庫的結果。用戶既不會被跟蹤,也不會被分析。 官方項目:https://github.com/searxng/searxng-docker 項目文檔&a…