灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2359回复:0

[mysql]MySQL中group_concat函数,连接字段,多个值显示为一行

楼主#
更多 发布于:2012-12-08 13:56



MySQL中group_concat函数,连接字段,多个值显示为一行

Sql代码    www.atcpu.com  
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)

喜欢0 评分0
游客

返回顶部