MySQL中如何用一句SQL语句将多行多列合并成一行一列显示
2013-07-11 15:31
573 查看
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)
1.以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)
2.以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)
3.以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)
4.以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)
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
6 rows in set (0.00 sec)
1.以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)
2.以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)
3.以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)
4.以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)
相关文章推荐
- 2013-01-23 10:13 MySQL中如何用一句SQL语句将多行多列合并成一行一列显示(转)
- MySql如何用一句sql语句对某个字段进行处理后,再进行对字段进行修改?即update和select如何混合写?
- 如何查询mysql中执行效率低的sql语句
- 在jmeter测试mysql中如何一次运行多条sql语句
- 如何查找MySQL中查询慢的SQL语句
- 如何将STRSQL中执行SELECT语句的结果分屏显示
- 如何跟踪mysql执行的sql语句
- 如何用一款小工具大大加速MySQL SQL语句优化(附源码) - 韩锋
- 如何查找MySQL中查询慢的SQL语句
- 如何高效快速地优化MySQL、SQL语句(附源码)
- 如何减少对Mysql的访问以优化SQL语句
- 如何跟踪mysql执行的sql语句
- 如何记录MySQL执行过的SQL语句
- mysql如何跟踪执行的sql语句
- MySQL5.6 如何优化慢查询的SQL语句 -- SQL优化
- mysql 的优化(如何查询mysql中执行效率低的sql语句)
- 记录:java执行mysql语句查询字段类型:timestamp返回页面显示会多出个 .0,自己如何处理的
- 如何查找MySQL中查询慢的SQL语句
- MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍