mysql 常用操作 group_concat

本文介绍了SQL中的group_concat函数,用于在分组查询后将同一组的字段值拼接。详细讲解了如何使用group_concat进行去重和自定义分隔符,并提供了一个案例,通过计算origin_node_id和origin_node_name中分隔符的数量来校验一对多关系下数据的一致性,找出数量不符的数据记录。
摘要由CSDN通过智能技术生成

1.group_concat函数使用

group_concat函数主要配合group by 使用,用于分组后将一组中的某个字段拼接在一起就可以使用gorup_concat.

 用法:

select group_concat(拼接字段) from xxx group by 分组字段;

  去重:

select group_concat(DISTINCT 拼接字段) from xxx group by 分组字段;

去重然后修改默认分隔符:

select group_concat(DISTINCT 拼接字段 SEPARATOR '-') from xxx group by 分组字段;

2.在一对多的情况下,一张表中冗余另一张表的数据,多条数据使用分隔符拼接.判断id和名称个数是否对应的上:

如图: id=1的数据 字段origin_node_id和origin_node_name通过通过‘-’分隔后数量对不上。

 可以这么统计数量对不上的数据

select id,line_code,origin_node_id,origin_node_name from t_line 
where (LENGTH(origin_node_id) - LENGTH(REPLACE(origin_node_id, '-', '')) + 1) 
<> (LENGTH(origin_node_name) - LENGTH(REPLACE(origin_node_name, '-', '')) + 1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值