Home > Database > Mysql Tutorial > mysql中的多行查询结果合并成一个_MySQL

mysql中的多行查询结果合并成一个_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-05-27 13:46:40
Original
1084 people have browsed it

SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id AND md.mimetype_id= 5 AND md.user_id=17: 

 

利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行,如|1 | 10,20,20| 

 

本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) 。 

 

MySQL中group_concat函数 

 

完整的语法如下: 下载地址 

 

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 

 

基本查询  

mysql> select * from aa; 

+------+------+ 

| id| name | 

+------+------+ 

|1 | 10| 

|1 | 20| 

|1 | 20| 

|2 | 20| 

|3 | 200 | 

|3 | 500 | 

+------+------+ 

6 rows in set (0.00 sec) 

 

以id分组,把name字段的值打印在一行,逗号分隔(默认)  

mysql> select id,group_concat(name) from aa group by id; 

+------+--------------------+ 

| id| group_concat(name) | 

+------+--------------------+ 

|1 | 10,20,20| 

|2 | 20 | 

|3 | 200,500| 

+------+--------------------+ 

3 rows in set (0.00 sec) 

 

以id分组,把name字段的值打印在一行,分号分隔  

mysql> select id,group_concat(name separator ';') from aa group by id; 

+------+----------------------------------+ 

| id| group_concat(name separator ';') | 

+------+----------------------------------+ 

|1 | 10;20;20 | 

|2 | 20| 

|3 | 200;500 | 

+------+----------------------------------+ 

3 rows in set (0.00 sec) 

 

以id分组,把去冗余的name字段的值打印在一行,  

逗号分隔 

 

mysql> select id,group_concat(distinct name) from aa group by id; 

+------+-----------------------------+ 

| id| group_concat(distinct name) | 

+------+-----------------------------+ 

|1 | 10,20| 

|2 | 20 | 

|3 | 200,500 | 

+------+-----------------------------+ 

3 rows in set (0.00 sec) 

 

以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序  

mysql> select id,group_concat(name order by name desc) from aa group by id; 

+------+---------------------------------------+ 

| id| group_concat(name order by name desc) | 

+------+---------------------------------------+ 

|1 | 20,20,10 | 

|2 | 20| 

|3 | 500,200| 

+------+---------------------------------------+ 

3 rows in set (0.00 sec)

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template