MYSQL 单表一对多查询,将多条记录合并成一条记录
一、描述:

在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图)

想要达到的效果:

实现SQL语句:

复制代码
1 SELECT
2 a.books,
3 GROUP_CONCAT(a.name SEPARATOR ‘||’) AS NAMES,
4 GROUP_CONCAT(a.code SEPARATOR ‘||’) AS codes
5 FROM
6 temp_info a
7 GROUP BY a.books ;
复制代码
二、关键词 GROUP_CONCAT():(返回一个字符串结果,该结果由分组中的值连接组合而成。)

语法结构:

1 GROUP_CONCAT(
2 [ DISTINCT ] expr [,
3 expr…] [
4 ORDER BY { unsigned_integer | col_name | formula } [ ASC | DESC ] [,
5 col…] ] [ SEPARATOR str_val ]
6 )
  要点:

1、通过使用 DISTINCT 可以排除重复值。

2、如果希望对结果中的值进行排序,可以使用 ORDER BY 子句。

3、SEPARATOR: 一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (","),可以通过指定 SEPARATOR “” 完全地移除这个分隔符。

4、group_concat_max_len:可以设置一个最大的长度。

语法: 1 SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;

5、如果最大长度被设置,结果值未到达到该长度,则结果值会被增加到这个长度。

6、如果分组的字符过长,可以对系统参数进行设置:SET @@global.group_concat_max_len=40000;

注意:

group_concat_max_len在MySQL的配置文件中是有默认值的!最大值为1024,如果要想该函数按需求设置长度,使用:

1 SET GLOBAL group_concat_max_len=-1;

查看group_concat_max_len最大长度:

1 show variables like ‘group_concat_max_len’;

三、使用实例:

复制代码
1 SELECT
2 a.books,
3 GROUP_CONCAT(DISTINCT a.name SEPARATOR ‘||’) AS NAMES, – 使用 distinct 去除重复数据、
4 GROUP_CONCAT(a.code ORDER BY a.code DESC SEPARATOR ‘||’) AS codes – 使用order by 对数据进行排序
5 FROM
6 temp_info a
7 GROUP BY a.books ;
复制代码

MYSQL 单表一对多查询,将多条记录合并成一条记录相关推荐

  1. mysql 一对多 右表多条记录合并_MYSQL 单表一对多查询,将多条记录合并成一条记录...

    一.描述: 在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图) 想要达到的效果: 实现SQL语句: SELECT a.books, GRO ...

  2. MySQL将多条数据合并成一条

    数据库中存的是多条数据,展示的时候需要合并成一条 数据表存储形式如下图 以type分组,type相同的算一条,且保留image和link的所有数据,用groupBy只保留一条数据 解决方案:用 GRO ...

  3. mysql 单表多字段查询_单表多字段MySQL模糊查询的实现

    MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助. 在最近的一个项目需要实现在单表中对多字段进行多个关键字的MySQL模 ...

  4. mysql单表简单排序查询

    -- 按库存升序排序 SELECT * FROM product ORDER BY stock ASC;-- 查询名称中包含手机的商品信息 按金额降序排序 SELECT * FROM product ...

  5. mysql 单表多次查询和多表联合查询,哪个效率高

  6. MySQL单表多字段模糊查询

    今天工作时遇到一个功能问题:就是输入关键字搜索的字段不只一个字段,比如 我输入: 超天才 ,需要检索出 包含这个关键字的 name . company.job等多个字段.在网上查询了一会就找到了答案. ...

  7. mysql为何500w拆表_【mysql】MySQL 单表500W+数据,查询超时,如何优化呢?

    1.问题描述: MySQL 数据库,单表 `im_data_record`,查询超时(30s) 表结构如下图: 表索引如下图: 查询语句如下: SELECT `record_global_id`, ` ...

  8. Mysql 单表查询where初识

    Mysql 单表查询where初识 准备数据 -- 创建测试库 -- drop database if exists student_db; create database student_db ch ...

  9. 运维高级学习(三):MySQL单表查询作业

    MySQL第三次作业 MySQL单表查询作业 素材如下: DROP TABLE IF EXISTS `course`; CREATE TABLE `course` ( `cs_id` int(11) ...

最新文章

  1. mysql复杂操作,.Net Core+mySqlSugar的一些稍复杂操作
  2. java 固定listview_listview Button始终放在底部示例
  3. EditText焦点问题
  4. python程序加密_项目源代码被好朋友“盗用”!让我痛心疾首!给Python源码加密!...
  5. 转载:Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
  6. C#中机密文本的保存方案
  7. 判断字符串括号是否闭合(){}[]
  8. 《Web漏洞防护》读书笔记——第6章,XXE防护
  9. 宝塔面板部署python项目
  10. Gluster FS 部署复制卷与常用命令 常见问题解决
  11. oracle监控数据库工具,Oracle轻量级实时监控工具-oratop
  12. 广州坐标系转换大地2000_市级2000国家大地坐标转换
  13. ninja源码下载及编译(Win10+VS2019)
  14. oracle读取数据方式,关于oracle数据库读取数据的三种方式
  15. 一位小程序代理商亲自见证小程序在外卖行业的突破
  16. python中怎样在图片上画线段_python 实现PIL模块在图片画线写字
  17. 大明战神戚继光带给程序员的启示
  18. pr中照片定格效果,轨道遮罩键
  19. Redis 初解缓存
  20. 5月6日—5月9日三年级课程新

热门文章

  1. python调用sdk接口_Python SDK使用说明
  2. Facebook广告设定技巧经验分享
  3. linux中改localhome名称,修改 /var/lib/locales/supported.d/local 文件(使用 locale -a 命令查看系統中所有已配置的 locale)...
  4. Redis基础(八)——集群
  5. 第十一周学习进度报告
  6. codeforces 955C - Sad powers
  7. LeetCode刷题(34)-Rotate List
  8. java连接数据库 oracle,Oracle数据库之一分钟教你学会用java连接Oracle数据库
  9. c语言判断输入类型是否为指定类型?
  10. 若依微服务如何设置令牌有效期?