MySQL字符串拼接、分组拼接字符串

MySQL拼接

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

一、经典拼接concat(x,x,....)

用法案例:

SELECT
	concat( '字符串', '拼接', ',啥都可以', '嘿嘿' ) AS concats 
FROM DUAL

MySQL字符串拼接、分组拼接字符串_第1张图片

注意

  • 如果有任何一个参数为NULL,则返回值为NULL;

二、分隔符拼接CONCAT_WS(separator,str1,str2,...)

-- CONCAT_WS(分隔符,字符串1,字符串2,...)
SELECT
	CONCAT_WS(':','现在时间',now()) AS concats 
FROM DUAL

MySQL字符串拼接、分组拼接字符串_第2张图片
注意

  • 如果分隔符为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字符串拼接、分组拼接字符串_第3张图片

  • 通过使用DISTINCT可以排除重复值;
  • 如果希望对结果中的值进行排序,可以使用ORDER BY子句;
  • SEPARATOR是一个字符串值,默认为逗号分隔。

你可能感兴趣的:(mysql,mysql,数据库,sql)