MYSQL 单表一对多查询,将多条记录合并成一条记录
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 单表一对多查询,将多条记录合并成一条记录相关推荐
- mysql 一对多 右表多条记录合并_MYSQL 单表一对多查询,将多条记录合并成一条记录...
一.描述: 在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图) 想要达到的效果: 实现SQL语句: SELECT a.books, GRO ...
- MySQL将多条数据合并成一条
数据库中存的是多条数据,展示的时候需要合并成一条 数据表存储形式如下图 以type分组,type相同的算一条,且保留image和link的所有数据,用groupBy只保留一条数据 解决方案:用 GRO ...
- mysql 单表多字段查询_单表多字段MySQL模糊查询的实现
MySQL模糊查询是我们经常会遇到的,下面就为您介绍MySQL模糊查询的实现方法,希望对您学习MySQL模糊查询方面能够有所帮助. 在最近的一个项目需要实现在单表中对多字段进行多个关键字的MySQL模 ...
- mysql单表简单排序查询
-- 按库存升序排序 SELECT * FROM product ORDER BY stock ASC;-- 查询名称中包含手机的商品信息 按金额降序排序 SELECT * FROM product ...
- mysql 单表多次查询和多表联合查询,哪个效率高
- MySQL单表多字段模糊查询
今天工作时遇到一个功能问题:就是输入关键字搜索的字段不只一个字段,比如 我输入: 超天才 ,需要检索出 包含这个关键字的 name . company.job等多个字段.在网上查询了一会就找到了答案. ...
- mysql为何500w拆表_【mysql】MySQL 单表500W+数据,查询超时,如何优化呢?
1.问题描述: MySQL 数据库,单表 `im_data_record`,查询超时(30s) 表结构如下图: 表索引如下图: 查询语句如下: SELECT `record_global_id`, ` ...
- Mysql 单表查询where初识
Mysql 单表查询where初识 准备数据 -- 创建测试库 -- drop database if exists student_db; create database student_db ch ...
- 运维高级学习(三):MySQL单表查询作业
MySQL第三次作业 MySQL单表查询作业 素材如下: DROP TABLE IF EXISTS `course`; CREATE TABLE `course` ( `cs_id` int(11) ...
最新文章
- mysql复杂操作,.Net Core+mySqlSugar的一些稍复杂操作
- java 固定listview_listview Button始终放在底部示例
- EditText焦点问题
- python程序加密_项目源代码被好朋友“盗用”!让我痛心疾首!给Python源码加密!...
- 转载:Asp.net 2.0 GridView数据导出Excel文件(示例代码下载)
- C#中机密文本的保存方案
- 判断字符串括号是否闭合(){}[]
- 《Web漏洞防护》读书笔记——第6章,XXE防护
- 宝塔面板部署python项目
- Gluster FS 部署复制卷与常用命令 常见问题解决
- oracle监控数据库工具,Oracle轻量级实时监控工具-oratop
- 广州坐标系转换大地2000_市级2000国家大地坐标转换
- ninja源码下载及编译(Win10+VS2019)
- oracle读取数据方式,关于oracle数据库读取数据的三种方式
- 一位小程序代理商亲自见证小程序在外卖行业的突破
- python中怎样在图片上画线段_python 实现PIL模块在图片画线写字
- 大明战神戚继光带给程序员的启示
- pr中照片定格效果,轨道遮罩键
- Redis 初解缓存
- 5月6日—5月9日三年级课程新
热门文章
- python调用sdk接口_Python SDK使用说明
- Facebook广告设定技巧经验分享
- linux中改localhome名称,修改 /var/lib/locales/supported.d/local 文件(使用 locale -a 命令查看系統中所有已配置的 locale)...
- Redis基础(八)——集群
- 第十一周学习进度报告
- codeforces 955C - Sad powers
- LeetCode刷题(34)-Rotate List
- java连接数据库 oracle,Oracle数据库之一分钟教你学会用java连接Oracle数据库
- c语言判断输入类型是否为指定类型?
- 若依微服务如何设置令牌有效期?