MySQL中的Group_concat函数

group_concat函数实用度其实很广的,在你需要的时候你会发觉这是一个多么有用的函数啊。废话少说,先举例说明下这个函数:

mysql> desc test_group_concat;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
±------±------------±-----±----±--------±------+
2 rows in set (0.00 sec)

mysql> select * from test_group_concat;
±-----±-----+
| id | name |
±-----±-----+
| 1 | 10 |
| 1 | 20 |
| 1 | 20 |
| 2 | 20 |
| 3 | 200 |
| 3 | 500 |
±-----±-----+
6 rows in set (0.00 sec)

这样一个表结构,这样的内容的test_group_concat表,实用group_concat函数看下效果吧;

mysql> select id,group_concat(name) from test_group_concat;
±-----±--------------------+
| id | group_concat(name) |
±-----±--------------------+
| 1 | 10,20,20,20,200,500 |
±-----±--------------------+
1 row in set (0.01 sec)

1:它能把所有指定列的内容放到一个字段中。

mysql> select id ,group_concat(distinct name ) from test_group_concat;
±-----±-----------------------------+
| id | group_concat(distinct name ) |
±-----±-----------------------------+
| 1 | 10,20,200,500 |
±-----±-----------------------------+
1 row in set (0.00 sec)

2:在函数中加了个distinct关键之,它还是组合了所有的指定字段的内容,不过全是去重再组合。

mysql> select id,group_concat(name separator ‘;’) from test_group_concat;
±-----±---------------------------------+
| id | group_concat(name separator ‘;’) |
±-----±---------------------------------+
| 1 | 10;20;20;20;200;500 |
±-----±---------------------------------+
1 row in set (0.00 sec)

3:实用了关键之separator,用来分隔每个值,也可以看出不使用它时的默认分隔符是“,”这个符号。当然你还可以实用换行符“\r\n”等。

mysql> select id,group_concat(name order by name desc) from test_group_concat;
±-----±--------------------------------------+
| id | group_concat(name order by name desc) |
±-----±--------------------------------------+
| 1 | 500,200,20,20,20,10 |
±-----±--------------------------------------+
1 row in set (0.00 sec)

4:在函数中是用order by能够让组合在一起的值重新排序。

Group_concat函数的语法:

GROUP_CONCAT([DISTINCT] expr [,expr …]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name …]]
[SEPARATOR str_val])

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值