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

 更新时间:2023年07月26日 09:06:09   作者:翎野君  
这篇文章主要介绍了MySQL group by分组后如何将每组所得到的id拼接起来,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

背景

需要将商品表中的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属性值了。

MySQL group by having分组查询时,如何将每组所有的id拼接起来

背景

系统升级,从旧的系统中把基础地址数据割接到新的系统中,割接后需要核实是否存在一个用户下有两个默认收货地址的情况;

SQL

select count(1), entity, group_concat(id SEPARATOR ', ') as ids from address where addressType = 'PERSON' and isDefault = 1 group by entity HAVING count(id) > 1;

示例运行结果:

在这里插入图片描述

group_concat函数

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

1> 通过使用distinct可以排除重复值;

2> 可以使用order by子句对结果中的值进行排序;

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

到此这篇关于MySQL group by分组后,将每组所得到的id拼接起来的文章就介绍到这了,更多相关mysql group by分组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL 大表的count()优化实现

    MySQL 大表的count()优化实现

    这篇文章主要介绍了MySQL 大表的count()优化实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • mac系统下mysql 8.0.11 安装指南

    mac系统下mysql 8.0.11 安装指南

    这篇文章主要为大家详细介绍了mac系统下mysql 8.0.11 安装指南,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • MySQL查询性能优化的7个常见查询错误及解决方案

    MySQL查询性能优化的7个常见查询错误及解决方案

    数据库性能是Web应用和大型软件系统稳定运行的关键,即使是精心设计的应用,如果数据库查询效率低下,也会导致用户体验下降、系统资源浪费,甚至系统崩溃,本文将深入探讨MySQL查询优化,分析常见的查询错误,并提供提升数据库性能的实用技巧,需要的朋友可以参考下
    2025-04-04
  • CentOS系统中安装MySQL和开启MySQL远程访问的方法

    CentOS系统中安装MySQL和开启MySQL远程访问的方法

    这篇文章主要介绍了CentOS系统中安装MySQL和开启MySQL远程访问的方法,包括MySQL的随机启动等操作的介绍,需要的朋友可以参考下
    2016-02-02
  • mysql5.7.17 zip 解压安装详细过程

    mysql5.7.17 zip 解压安装详细过程

    这篇文章主要为大家详细介绍了mysql5.7.17 zip 解压安装详细过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 为什么mysql字段要使用NOT NULL

    为什么mysql字段要使用NOT NULL

    数据库字段一定要设置为 not null,不然会有很大的bug,下面就一起来介绍一下,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • mysql创建存储的全过程

    mysql创建存储的全过程

    MySQL中没有直接的FOR循环语句,可通过存储过程实现循环执行SQL,需替换表名和列名,存储过程示例将1到10插入表中,执行和删除存储过程需特定命令
    2024-11-11
  • Mysql 5.6

    Mysql 5.6 "隐式转换"导致的索引失效和数据不准确的问题

    这篇文章主要介绍了Mysql 5.6 “隐式转换”导致的索引失效和数据不准确的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • MySQL创建用户与授权及撤销用户权限方法

    MySQL创建用户与授权及撤销用户权限方法

    这篇文章主要介绍了MySQL创建用户并授权及撤销用户权限、设置与更改用户密码、删除用户等等,需要的朋友可以参考下
    2014-08-08
  • Centos6.9安装Mysql5.7.18步骤记录

    Centos6.9安装Mysql5.7.18步骤记录

    本文给大家详细介绍了Centos6.9安装Mysql5.7.18的步骤,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-06-06

最新评论