您的位置:首页 > 数据库 > MySQL

MySQL group_concat函数进行行转列使用

2012-08-06 15:48 716 查看
创建测试数据:

mysql> create table group_concat (a int);

Query OK, 0 rows affected (0.04 sec)

mysql> insert into group_concat values(2),(1),(4),(5),(8);

Query OK, 5 rows affected (0.00 sec)

Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from group_concat;

+------+

| a    |

+------+

|    2 |

|    1 |

|    4 |

|    5 |

|    8 |

+------+

5 rows in set (0.00 sec)

基本使用:

mysql> select group_concat(a) from group_concat;

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

| group_concat(a) |

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

| 2,1,4,5,8       |

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

1 row in set (0.00 sec)

简单排序:

mysql> select group_concat(a order by a) from group_concat;

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

| group_concat(a order by a) |

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

| 1,2,4,5,8                  |

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

1 row in set (0.00 sec)

定制分隔符:

mysql> select group_concat(a order by a separator '|') from group_concat;

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

| group_concat(a order by a separator '|') |

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

| 1|2|4|5|8                                |

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

1 row in set (0.00 sec)

相同记录分组:

mysql> insert into group_concat values(1);

Query OK, 1 row affected (0.00 sec)

mysql> select group_concat(a order by a separator '|') from group_concat;

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

| group_concat(a order by a separator '|') |

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

| 1|1|2|4|5|8                              |

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

1 row in set (0.00 sec)

mysql> select group_concat(a order by a separator '|') from group_concat group by a;

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

| group_concat(a order by a separator '|') |

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

| 1|1                                      |

| 2                                        |

| 4                                        |

| 5                                        |

| 8                                        |

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

5 rows in set (0.00 sec)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息