首页 > 数据库 >MySQL group by分组后,将每组所得到的id拼接起来

MySQL group by分组后,将每组所得到的id拼接起来

时间:2023-07-26 09:15:16浏览次数:46  
标签:sku group spu 拼接 MySQL id concat

背景

需要将商品表中的sku按照spu_id分组后,并且得到每个spu下的sku_id,需要使用到group_concat函数

select spu_id, count(*), group_concat(id SEPARATOR ',  ') as ids from product_sku where category = 'tv' group by spu_id;

group_concat函数

group_concat函数,实现分组查询之后的数据进行合并,并返回一个字符串结果,语法如下

group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’]

1> 通过使用distinct可以排除重复值;
2> 可以使用order by子句对结果中的值进行排序;

示例:

select spu_id, count(*), group_concat(id SEPARATOR ',  ') as ids from product_sku where category = 'tv' group by spu_id;

注意有坑

​​​group_concat()​​函数用于将多个字符串拼接成一个字符串。而MySql默认的最大拼接长度为1024个字节,一般情况下是够用的,但如果数据量特别大,就会存在java层返回内容被截断的问题,这时,为了保证拼接数据的完整性,就需要手工修改配置文件的group_concat_max_len属性值了。

 

本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。

首发链接:https://www.cnblogs.com/lingyejun/p/17581506.html

标签:sku,group,spu,拼接,MySQL,id,concat
From: https://www.cnblogs.com/lingyejun/p/17581506.html

相关文章

  • MySQL查询阻塞该如何解决
    MySQL是广泛使用的开源数据库管理系统,它提供了方便的查询功能。然而,在高并发访问的情况下,可能出现查询阻塞的情况。下面是一些解决此问题的方法。SHOWFULLPROCESSLIST;可以使用上述命令查看所有正在执行的SQL查询,并查看它们是否阻塞其他查询。如果有查询阻塞了其他查询,可以使......
  • Ubuntu 部署 nvidia-docker
    1)安装nvidia显卡驱动2)安装Docker参考:Docker清华源,DaocloudDocker极速下载$exportDOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"$curl-sSLhttps://get.daocloud.io/docker|sh修改Docker镜像服务器{"runtimes":{"nvidia&qu......
  • Linux之RAID
    目录独立硬盘冗余阵列(RAID,RedundantArrayofIndependentDisks),旧称廉价磁盘冗余阵列(RedundantArrayofInexpensiveDisks),简称磁盘阵列。......
  • Mysql主从复制
    介绍MySQL主从复制时一个异步的复制过程,底层时基于MySQL数据库自带的二进制日志功能。就是一台或者多台MySQL数据库(slave从库)从另一台MySQL(master主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制时MySQL数据库自带功能,无......
  • IDEA 配置 ESLint
    一直想将ESLint配置推广到团队中,只是自己也没完全摸透,也不好推广,于是记录学习一下。平时工作的环境主要为IDEA,所以配置ESLint也主要从IDEA的角度入手。ESLint简介官网介绍:ESLint查找并修复JavaScript代码中的问题,静态地分析你的代码以快速发现问题。它内置于大多数......
  • ASP.NET Core Identity 系列之一
    ASP.NETCoreIdentity提供给我们一组工具包和API,它能帮助我们应用程序创建授权和认证功能,也可以用它创建账户并使用用户名和密码进行登录,同时也提供了角色和角色管理功能。ASP.NETCoreIdentity使用SQLServer/第三方数据库存储用户名和密码,角色和配置数据这系列中我们主要使用......
  • ASP.NET Core Identity 系列之一
    ASP.NETCoreIdentity提供给我们一组工具包和API,它能帮助我们应用程序创建授权和认证功能,也可以用它创建账户并使用用户名和密码进行登录,同时也提供了角色和角色管理功能。ASP.NETCoreIdentity使用SQLServer/第三方数据库存储用户名和密码,角色和配置数据这系列中我们主要使用VS......
  • MySQL 事务
    事务1.概念事务是一组命令的集合,强调整体性。以starttransaction或begin开始,以commit或callback结束。starttransactionupdate...1update...2commitbeginupdate...3update...4rollbackcommit表示提交本次事务,完成修改。(若失败,自动回滚回begin......
  • MySQL日志文件简记
    日志文件binlogbinlog主要记录了MySQL数据库执行了更改的所有操作,主要用来做主从复制,数据恢复记录模式:Statement模式:每一条回修改数据的sql都会被记录在日志中Row模式:每一行具体变更是俺都会被记录在binlog中混合模式刷盘时机选择0:由系统自行判断何时刷盘1:每次提交事务......
  • mysql 两表关联更新
    在实际情况下,其中一张表里的数据没有赋值到关联表中,可以使用下面的关联方式进行更新 把b表的name给a表的nameUPDATEtable_aaLEFTJOINtable_bbONp.id=a.uidSETa.name=b.nameWHEREa.name!='' ......