SQL函數(shù)Group_concat的用法及說明
SQL函數(shù)Group_concat的用法
完整語法如下
group_concat([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
SELECT * FROM testgroup
表結(jié)構(gòu)與數(shù)據(jù)如上
現(xiàn)在的需求就是每個(gè)id為一行 在前臺每行顯示該id所有分?jǐn)?shù)
group_concat 上場?。。?/p>
SELECT id,GROUP_CONCAT(score) FROM testgroup GROUP BY id
可以看到 根據(jù)id 分成了三行 并且分?jǐn)?shù)默認(rèn)用 逗號 分割 但是有每個(gè)id有重復(fù)數(shù)據(jù) 接下來去重
SELECT id,GROUP_CONCAT(DISTINCT score) FROM testgroup GROUP BY id
排序
SELECT id,GROUP_CONCAT(score ORDER BY score DESC) FROM testgroup GROUP BY id
最后可以設(shè)置分隔符
SELECT id,GROUP_CONCAT(score SEPARATOR ';') FROM testgroup GROUP BY id
這樣我們的數(shù)據(jù)就根據(jù)id 不同分隔符 放在了一行 前臺可以根絕對應(yīng)的分隔符 對score 字段進(jìn)行分割 但是有可能存在score 數(shù)據(jù)類型過大問題
達(dá)到需求目的?。。?/p>
Group_concat函數(shù)長度問題
今天出了個(gè)線上bug,先通過其他手段把bug避免了,然后打日志查看具體原因,發(fā)現(xiàn)是一個(gè)sql查出來的字段內(nèi)容少了很多,一查詢原來是group_concat函數(shù)最大長度只有1024,超過長度會被截取。
解決的方式有三個(gè)
- 修改sql查詢邏輯,避免使用group_concat
- 修改配置文件,添加或修改 group_concat_max_len = 1024000 ,然后重啟服務(wù)。這個(gè)方式是永久性的
- 修改變量
use mysql; SHOW VARIABLES LIKE "group_concat_max_len"; #查詢最大值 SET GLOBAL group_concat_max_len=10240000; SET SESSION group_concat_max_len=10240000;
特別注意:只對當(dāng)前會話有效
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 如何修改Mysql中g(shù)roup_concat的長度限制
- mysql group_concat 實(shí)現(xiàn)把分組字段寫成一行的方法示例
- mysql中GROUP_CONCAT的使用方法實(shí)例分析
- MySQL GROUP_CONCAT限制解決方案
- MySQL基于group_concat()函數(shù)合并多行數(shù)據(jù)
- SQL?Server實(shí)現(xiàn)group_concat功能的詳細(xì)實(shí)例
- SQL中concat、concat_ws()、group_concat()的使用與區(qū)別
- MySQL group_concat函數(shù)使用方法詳解
- mysql中GROUP_CONCAT函數(shù)使用及遇到問題詳解
- mysql中GROUP_CONCAT函數(shù)使用技巧及問題詳解
- SQL?Server實(shí)現(xiàn)group_concat函數(shù)的詳細(xì)舉例
- SQL函數(shù)實(shí)現(xiàn)Group_concat用法
相關(guān)文章
SpringBoot中mysql的驅(qū)動依賴問題小結(jié)
這篇文章主要介紹了SpringBoot中mysql的驅(qū)動依賴問題,本文通過圖文示例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05Mysql創(chuàng)建通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫
下面通過圖文并茂的方式給大家介紹通用設(shè)備管理信息系統(tǒng)數(shù)據(jù)庫的創(chuàng)建過程,感興趣的朋友一起學(xué)習(xí)2016-04-04mysql之validate_password_policy的使用
這篇文章主要介紹了mysql之validate_password_policy的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05遠(yuǎn)程連接mysql數(shù)據(jù)庫注意點(diǎn)記錄
有時(shí)候我們需要遠(yuǎn)程連接mysql數(shù)據(jù)庫,那么就需要注意如下問題,需要的朋友可以參考下2012-08-08mysql存儲過程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET
這篇文章主要介紹了mysql存儲過程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET)操作方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了mysql存儲過程創(chuàng)建、調(diào)用及變量創(chuàng)建、賦值具體原理、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-12-12Linux系統(tǒng)利用crontab定時(shí)備份Mysql數(shù)據(jù)庫方法
本文教你如果快速利用系統(tǒng)crontab來定時(shí)執(zhí)行備份文件,按日期對備份結(jié)果進(jìn)行保存2021-09-09