sql拼接函数Group_concat()
·
Group_concat 聚合函数
MySQL中,Group_concat()
函数 将一个分组中的指定元素(列或表达式)的值,拼接成一个字符串返回(用逗号分隔)。
Group_concat语法
Group_concat( [要拼接在一起的字段] [order by…] [SEPARATOR separator] )
参数说明
- 要拼接在一起的字段
要连接的一个或多个列/表达式 - order by…
对拼接在一起的内容进行排序 - SEPARATOR
拼接符号,默认的是separator
:逗号,
返回值说明
- 返回一个字符串:拼接在一起的内容;
- 若结果集没有任何行,此函数将返回null;
示例
SELECT * FROM
info
WHERE
CustomerId = 'CT0010'
Id | CustomerId | CustomerName | CustStoreId | CustStoreName | Type |
---|---|---|---|---|---|
0096 | CT0010 | XX公司 | CS00099 | 门店2号 | 33 |
0002 | CT0010 | XX公司 | CS00068 | 门店1号 | 33 |
0001 | CT0010 | XX公司 | CS00000 | 适用全部门店 | 33 |
-- 连接字段
-- Group_concat(要拼接在一起的字段)
SELECT
CustomerId,
GROUP_CONCAT(Id) as Spli
FROM
info
WHERE
CustomerId = 'CT0010'
CustomerId | Spli |
---|---|
CT0010 | 0096 , 0002 , 0001 |
-- 连接字段、添加排序、替换连接符
-- Group_concat( 要拼接在一起的字段 + order by + 分隔符 )
SELECT
CustomerId,
GROUP_CONCAT(
Id
ORDER BY CustStoreId
SEPARATOR '/') as Spli
FROM
info
WHERE
CustomerId = 'CT0010'
CustomerId | Spli |
---|---|
CT0010 | 0001 / 0002 / 0096 |
扩展 —— Concat_WS() 字符串函数
- Concat_WS() 函数,是通过分隔符号 按顺序将指定元素(列)数据拼接在一起,返回一个拼接字符串。
- 若无值 Concat_WS() 会自动过滤掉(忽略)。
- 若只有一个元素参与拼接,则直接返回该元素(原样返回)。
-- 添加Concat_WS()
SELECT
CustomerId,
GROUP_CONCAT(
CONCAT_WS( '-', CustStoreId, CustStoreName )
ORDER BY CustStoreId DESC
SEPARATOR '/') as Spli
FROM
info
WHERE
CustomerId = 'CT0010'
CustomerId | Spli |
---|---|
CT0010 | CS00099 - 门店2号 / CS00068 - 门店1号 / CS00000 - 适用全部门店 |
- 整体上速度也挺快的,性能问题不大:
推荐内容
-
MySql . Concat_WS()函数
通过分隔符,将2个及多个字段元素顺序拼接在一起,返回拼接后的字符串。 -
MySql . Field()函数
返回一个指定的值 在给定的列表中的 索引(排序、数据优先级)。 -
返回大于或等于制定数字的最小整数值。sql取余数…
更多推荐
已为社区贡献4条内容
所有评论(0)