mysql groupby 字段合并问题(group_concat)
在我们的日常mysql查询中,我们可能会遇到这样的情况:
对表中的所有记录进行分类,并且我需要得到每个分类中某个字段的全部成员。
上面的话,大家看起来可能不太好懂,下面举一个例子来给大家说明。
现在我们有一张表,结构如下:

现在我们向这张表中插入一些数据。
insert into test_group_concat values(default,1,'ppaa',1594802453,0),(default,1,'llcc',1594802453,0),(default,2,'uupp',1594802453,0),(default,2,'ttww',1594802453,0)
现在我们可以看到,数据表的情况如下:

我的需要是这样的:我需要对type_id进行分组,而且每个分组下的所有name我都要得到,这个是后应该怎么办呢?
这样写:select type_id,name from test_group_concat GROUP BY type_id
我们得到的结果是这样的:

上面每个type_id对应只有一个name,这显然不符合我们的需求,我们的需求是需要找出type_id = 1 这个分类下所有的name,和type_id = 2的所有的name。
怎么办呢?
有朋友会想到,“用concat就可以解决问题了嘛!”,好的,我们现在试一下。
select type_id,concat(name) as names from test_group_concat GROUP BY type_id
结果如下:

很显然,没有达到我们的预期,怎么办!!!
mysql中给我们提供了一个函数:group_concat,利用这个函数,我们就能够很好的解决上述问题。我们试一下。
select type_id,group_concat(name) as names from test_group_concat GROUP BY type_id
结果如下:

上述结果,很好的满足了我们的需求。
那有朋友就会问了,如果我不仅想知道分类某个字段的全部信息,我还想要某两个字段连接在一起的所有信息,我们可以这么去写。
select type_id,group_concat(id,',',name) as names from test_group_concat GROUP BY type_id

mysql groupby 字段合并问题(group_concat)的更多相关文章
- MySQL把多个字段合并成一条记录的方法
转:http://www.111cn.net/database/mysql/71591.htm MySQL把多个字段合并成一条记录的方法 在mysql中字段合并可以使用很多函数来实现,如可以利用 GR ...
- mysql: 两个字段合并,字符时间转时间戳,别名字段作为where条件查询
有字段,a,b: a存的是:2016-10-10 b存的是:10:15:30 mysql将字段合并: concat(a, ' - ', b) 或者 concat(a, ' ', b) 字符时间转时间 ...
- MySQL GROUP_CONCAT()函数 -- 字段合并查询
在做查询的时候遇到一个问题,今天分享一下解决方法. 先看一下我想要什么效果. 清单名称类型要点,后面两列为清单步骤(外键表) 但我并不想让主表的内容重复那么多遍,于是 distinct去重.子查询.左 ...
- Mysql字段合并
现有数据 合并字段显示:利用GROUP_CONCAT(course,":","score") 严格区分大小写!GROUP_CONCAT 复制代码 SELECT ...
- mysql 多行合并一列
mysql 多行合并一列 使用的函数为: GROUP_CONCAT(exp) 其中exp 的参数类似如下: (field order by field desc separator ';') ...
- mysql中的concat,concat_ws(),group_concat()
mysql中的concat,concat_ws(),group_concat() 说明: 本文中使用的例子均在下面的数据库表tt2下执行: 一.concat()函数 1.功能:将多个字符串连接 ...
- Mysql学习笔记—concat以及group_concat的用法(转载)
本文中使用的例子均在下面的数据库表tt2下执行: 一.concat()函数 1.功能:将多个字符串连接成一个字符串. 2.语法:concat(str1, str2,...) 返回结果为连接参数产生的字 ...
- Linq Mysql GroupBy语句的问题处理
语句如下: var resumeList = db.ChannelResume.Where(model); var groupValues = resumeList.GroupBy(t => n ...
- sql字段合并与分组聚合
http://blog.csdn.net/cuixianlong/article/details/74024846 1 字段合并 原始数据如下:表名为Employee ID FirstName Las ...
随机推荐
- control+Z的逆 control+Y
接触过电脑的朋友一定知道control键加Z可以在大多时候撤销我们前一步的操作,相当于计算机系统里最“广谱”的后悔药. 然而,你有没有在编辑文本的时候却因为撤销的操作而后悔?输入文本之后撤销,发现少了 ...
- [apue] 一个快速确定新系统上各类限制值的工具
对于在不同 Unix 系统之间移植程序,最重要的事情就是确定新系统的一些编译时.运行时固定或不固定的限制值了.例如文件路径最大长度 PATH_MAX.进程最大可打开文件句柄数 OPEN_MAX.用户可 ...
- android中的逐帧动画
在android中实现动画最简单的一种方式就是使用逐帧动画(AnimationDrawable).逐帧动画的原理同最古老的动画机制是一样的,通过快速的播放一组变化微小的图片,在人眼的视差时间下,达到一 ...
- umi 调试
最近在umi. 设置一个layout字段, 结果左边菜单栏就出现了. 很神奇. 决定对这个库一探究竟. 我是一个喜欢看底层库的人,网上所有的启动方式都是yarn或者npm start 启动服务.然后 ...
- Git安装及配置SSH-Key
下载Git 打开 https://git-scm.com/downloads 选择windows, 下载并安装. 配置全局用户名及邮箱 配置用户名 git config --global user.n ...
- 在linux裸机部署springBoot项目
一.项目创建及打包 创建项目,打jar包 二.安装JDK 1.在/usr目录下床架java文件夹,将 2.下载jdk8,并上传linux服务器(/usr/java) 下载地址:https://www. ...
- asp.net 修饰符介绍(关于public、private、protected、internal)
1.private修饰符 private修饰符用于设置类或类成员的访问权限仅为所属类的内部,private也被称为私有修饰符.某些时候需要访问私有类成员时,可通过get和set访问器读取或修改. 2. ...
- python之shutil模块的使用
shutil模块 shutil模块是一种高级的文件操作工具,其对文件的复制与删除操作非常强大,shutil 名字来源于 shell utilities,该模块拥有许多文件(夹)操作的功能,包括复制.移 ...
- css如何设置首行文字缩进?
在HTML网页中通常一段文字都需要设置首行缩进两个文字,使页面更加美观,我们可以通过css实现这一效果,下面我们就来看一下使用css设置首行文字缩进的方法. css可以使用text-indent属性来 ...
- centos7安装Mysql爬坑记录
centos7安装Mysql爬坑记录 查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ...