13719654321 发表于 2017-12-12 22:41:05

mysql 将多个查询结果合并成一行

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

  
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( 要连接的字段 [Order BY ASC
/DESC 排序字段] )  

  
基本查询
  
mysql
> select * from aa;  

+------+------+
  
|>  
+------+------+
  
|1 | 10|
  
|1 | 20|
  
|1 | 20|
  
|2 | 20|
  
|3 | 200 |
  
|3 | 500 |
  
+------+------+
  
6 rows in set (0.00 sec)
  

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

  
mysql> select>  
+------+--------------------+

  
|>  
+------+--------------------+
  
|1 | 10,20,20|
  
|2 | 20 |
  
|3 | 200,500|
  
+------+--------------------+
  
3 rows in set (0.00 sec)
  

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

  
mysql> select>  
+------+----------------------------------+

  
|>  
+------+----------------------------------+
  
|1 | 10;20;20 |
  
|2 | 20|
  
|3 | 200;500 |
  
+------+----------------------------------+
  
3 rows in set (0.00 sec)
  

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


  
mysql> select>  
+------+-----------------------------+

  
|>  
+------+-----------------------------+
  
|1 | 10,20|
  
|2 | 20 |
  
|3 | 200,500 |
  
+------+-----------------------------+
  
3 rows in set (0.00 sec)
  

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

  
mysql> select>  
+------+---------------------------------------+

  
|>  
+------+---------------------------------------+
  
|1 | 20,20,10 |
  
|2 | 20|
  
|3 | 500,200|
  
+------+---------------------------------------+
  
3 rows in set (0.00 sec)
页: [1]
查看完整版本: mysql 将多个查询结果合并成一行