首页 > 数据库 >MySQL的group_concat()函数简单用法

MySQL的group_concat()函数简单用法

时间:2022-12-28 14:57:33浏览次数:50  
标签:group name job 技术类 MySQL concat select

将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
group_concat函数首先根据group by指定的列进行分组,将同一组的列显示出来,并且用分隔符分隔。由函数参数(字段名)决定要返回的列。

  用法:
  (1)使用distinct可以排除重复值;
  (2)如果需要对结果中的值进行排序,可以使用order by子句;
  (3)separator是一个字符串值,默认为逗号。

# group_concat可以
select name,group_concat(age) from emp group by dept;

# 例如
mysql> select * from t1;	# 表中数据
+----+-------+-----------+---------+
| id | name  | dept      | job     |
+----+-------+-----------+---------+
|  1 | jack  | 销售类    | sale    |
|  2 | rose  | 销售类    | sale    |
|  3 | tom   | 技术类    | DBA     |
|  4 | jerry | 技术类    | develop |
|  5 | kevin | 技术类    | develop |
+----+-------+-----------+---------+
5 rows in set (0.00 sec)

# 可以将单列输出
mysql> select job,group_concat(name) from t1 group by job;
+---------+--------------------+
| job     | group_concat(name) |
+---------+--------------------+
| DBA     | tom                |
| develop | jerry,kevin        |
| sale    | jack,rose          |
+---------+--------------------+
3 rows in set (0.00 sec)

# 也可以对多列使用
mysql> select job,group_concat(name,'|',dept) from t1 group by job;
+---------+---------------------------------+
| job     | group_concat(name,'|',dept)     |
+---------+---------------------------------+
| DBA     | tom|技术类                      |
| develop | jerry|技术类,kevin|技术类       |
| sale    | jack|销售类,rose|销售类         |
+---------+---------------------------------+
3 rows in set (0.00 sec)

# 可以指定分隔符号,使用separator即可
mysql> select job,group_concat(name separator ';') from t1 group by job;
+---------+----------------------------------+
| job     | group_concat(name separator ';') |
+---------+----------------------------------+
| DBA     | tom                              |
| develop | jerry;kevin                      |
| sale    | jack;rose                        |
+---------+----------------------------------+
3 rows in set (0.00 sec)

# 使用order by进行排序
mysql> select job,group_concat(name, dept order by name separator ';') from t1 group by job;
+---------+------------------------------------------------------+
| job     | group_concat(name, dept order by name separator ';') |
+---------+------------------------------------------------------+
| DBA     | tom技术类                                            |
| develop | jerry技术类;kevin技术类                              |
| sale    | jack销售类;rose销售类                                |
+---------+------------------------------------------------------+
3 rows in set (0.00 sec)

标签:group,name,job,技术类,MySQL,concat,select
From: https://www.cnblogs.com/smyz/p/17010121.html

相关文章

  • mysql 用select 语句的查询结果当作 insert 语句需要插入的值
    背景在实际使用中会遇到这样的场景,需要根据一个表里的内容在其他表中添加关联的数据,这时候就会用到insertinto{table_name}selectx1,x2,x3...from{table_name2}wh......
  • MySQL DATE_FORMAT() 格式化日期
    定义和用法DATE_FORMAT()函数用于以不同的格式显示日期/时间数据。语法DATE_FORMAT(date,format)date 参数是合法的日期。format 规定日期/时间的输出格式。可以使......
  • windows安装mysql8.0.21
    一、需求背景    oracle、mysql在生产环境中是很常用的数据库,项目上也会遇到很多。项目上现在主要还是oracle为主,慢慢国产化推动的话,主流国产数据库会占大头。这次分......
  • MySQL多表关联查询+子查询_R
    MySQL多表关联查询+子查询--**************关联查询(多表查询)****************--多表查询规则:1)确定查询哪些表。2)确定哪些字段。3)表与表之间连接关系(规律:连接条件数......
  • Kettle 连接 MySql 驱动:Driver class 'org.gjt.mm.mysql.Driver' could not be found
    异常:Driverclass'org.gjt.mm.mysql.Driver'couldnotbefound,makesurethe'MySQL'driver(jarfile)isinstalled.org.gjt.mm.mysql.DriverLink1:https://mvnrep......
  • MySQL中的insert ignore into
    一言以蔽之,insertignoreinto:忽略重复的记录,直接插入数据。 1、使用insertignoreinto语句时,如果主键冲突,只是提示"warnings"。如果使用insertinto语句时,如果主......
  • MySQL约束条件介绍
    无符号、零填充unsigned #因为正负值符号会占用一个比特位,使用此约束条件可以去掉数字类型里面的正负值符号,之后相同数字类型会支持的正数范围会更大 idintunsigne......
  • mysql Event、存储过程、表命令
     Mysql事件调度器(EventScheduler)类似于定时器,可以在某一个时间点执行一个SQL语句或一个语句块(BEGIN...END);或者每隔固定间隔重复执行。类似于Linux下的crontab,或Windows......
  • mybatis批量update(mysql)
    批量插入:<insertid="batchInsert">insertintotestTable(id,content)values<foreachcollection="list"item="item"index="index"separator=",">......
  • MySql索引下推知识分享
    作者:刘邓忠Mysql是大家最常用的数据库,下面为大家带来mysql索引下推知识点的分享,以便巩固mysql基础知识,如有错误,还请各位大佬们指正。1什么是索引下推索引下推(In......