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

SQL函數(shù)Group_concat的用法及說明

 更新時(shí)間:2023年03月02日 08:32:39   作者:寸草心2130  
這篇文章主要介紹了SQL函數(shù)Group_concat的用法及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論