数据库mysql将id相同数据合并-group_concat函数

写在前面
最近数据表新增了两个搞事情的字段,近一个月id,近一个月出现的次数。通过mysql就可以快速实现。
开始表演

  • 建表语句
create table `test1` (
     `id` int(11),
     `enbid` int(6),
     `cid` int(6),
     `abnor_id_month` varchar(50),
     `abnor_count_month` int(10)
     );
  • 样例数据
insert into test1(id,enbid,cid) values(1,12,3),(2,12,5),
(3,1,4),(4,12,5),(5,12,5),(6,1,3)(7,1,3);
  • 查询结果如下:
    查询结果1.png
  • 插入近一个月异常id
update test1 k left join (select a.id as w, count(b.id) as e,group_concat(b.id) as r
 from test1 a  left join test1 b on a.enbid=b.enbid and a.cid=b.cid  and a.id !=b.id 
group by a.id )l on k.id=l.w set k.abnor_id_month=l.r;
  • 查询结果如下:
    查询结果2.png
  • 插入近一个月异常次数
update test1 k left join (select a.id as w, count(b.id) as e,group_concat(b.id) as r
 from test1 a  left join test1 b on a.enbid=b.enbid and a.cid=b.cid  and a.id !=b.id 
group by a.id )l on k.id=l.w set k.abnor_count_month=l.e;
  • 查询结果如下:
    查询结果3.png

    写在后面
    这个sql看着很简单,但是其实很有用,是一个好轮子 Best Wishes。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容