sql拼接函数Group_concat()
短信预约 -IT技能 免费直播动态提醒
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 SpliFROM info WHERE CustomerId = 'CT0010'
CustomerId | Spli |
---|---|
CT0010 | CS00099 - 门店2号 / CS00068 - 门店1号 / CS00000 - 适用全部门店 |
- 整体上速度也挺快的,性能问题不大:
推荐内容
-
MySql . Concat_WS()函数
通过分隔符,将2个及多个字段元素顺序拼接在一起,返回拼接后的字符串。 -
MySql . Field()函数
返回一个指定的值 在给定的列表中的 索引(排序、数据优先级)。 -
返回大于或等于制定数字的最小整数值。sql取余数…
来源地址:https://blog.csdn.net/weixin_46484674/article/details/126662192
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341