MySQL拼接
-
- 一、經典拼接`concat(x,x,....)`
- 二、分隔符拼接`CONCAT_WS(separator,str1,str2,...)`
- 三、分組拼接`GROUP_CONCAT(expr)`
一、經典拼接 concat(x,x,....)
concat(x,x,....)
用法案例:
SELECT
concat( '字元串', '拼接', ',啥都可以', '嘿嘿' ) AS concats
FROM DUAL

注意:
- 如果有任何一個參數為NULL,則傳回值為NULL;
二、分隔符拼接 CONCAT_WS(separator,str1,str2,...)
CONCAT_WS(separator,str1,str2,...)
-- CONCAT_WS(分隔符,字元串1,字元串2,...)
SELECT
CONCAT_WS(':','現在時間',now()) AS concats
FROM DUAL
注意:
- 如果分隔符為NULL,則結果為NULL;
三、分組拼接 GROUP_CONCAT(expr)
GROUP_CONCAT(expr)
- group_concat函數
- 實作分組查詢之後的資料進行合并,并傳回一個字元串結果。
- 用于将多個字元串拼接成一個字元串。
- MySql預設的最大拼接長度為1024個位元組
格式: GROUP_CONCAT(DISTINCT 要拼接的字段 ORDER BY 排序字段 ASC/DESC SEPARATOR '分隔符')
-- GROUP_CONCAT(DISTINCT 要拼接的字段 ORDER BY 排序字段 ASC/DESC SEPARATOR '分隔符')
-- 不好寫例子,直接借用的leetCode上的題
SELECT
sell_date,
count( DISTINCT product ) AS num_sold,
GROUP_CONCAT( DISTINCT product ORDER BY product SEPARATOR ',' ) AS products
FROM
Activities
GROUP BY
sell_date;
- 通過使用
可以排除重複值;DISTINCT
- 如果希望對結果中的值進行排序,可以使用
子句;ORDER BY
-
是一個字元串值,預設為SEPARATOR
分隔。逗号