天天看點

MySQL字元串拼接concat()、分組拼接字元串group_concat()

MySQL拼接

    • 一、經典拼接`concat(x,x,....)`
    • 二、分隔符拼接`CONCAT_WS(separator,str1,str2,...)`
    • 三、分組拼接`GROUP_CONCAT(expr)`

一、經典拼接

concat(x,x,....)

用法案例:

SELECT
	concat( '字元串', '拼接', ',啥都可以', '嘿嘿' ) AS concats 
FROM DUAL
           
MySQL字元串拼接concat()、分組拼接字元串group_concat()

注意:

  • 如果有任何一個參數為NULL,則傳回值為NULL;

二、分隔符拼接

CONCAT_WS(separator,str1,str2,...)

-- CONCAT_WS(分隔符,字元串1,字元串2,...)
SELECT
	CONCAT_WS(':','現在時間',now()) AS concats 
FROM DUAL
           
MySQL字元串拼接concat()、分組拼接字元串group_concat()

注意:

  • 如果分隔符為NULL,則結果為NULL;

三、分組拼接

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;

           
MySQL字元串拼接concat()、分組拼接字元串group_concat()
  • 通過使用

    DISTINCT

    可以排除重複值;
  • 如果希望對結果中的值進行排序,可以使用

    ORDER BY

    子句;
  • SEPARATOR

    是一個字元串值,預設為

    逗号

    分隔。