mysql的group_concat函数

手册上是这样说的:

 

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

 

通常这个函数是和group by一起使用的。

 

效果是把想要查询的分组中的某个其他字段使用符号连接起来,按一条数据查询出来。

 

举个例子吧。

 

team_id是某个团购的项目id,order_id是该项目的订单id。

 

想要查询项目id为9的所有订单的id。

 

sql语句为:

 

SELECT team_id, GROUP_CONCAT(order_id) AS orders FROM TABLENAME WHERE team_id=9 GROUP BY team_id;

 

结果为:

 

+------------+---------+
| team_id | orders |
+------------+---------+
| 9 | 3,4,5 |
+------------+---------+
1 row IN SET (0.00 sec)

 

还可以使用SEPARATOR来定义分隔符。

 

SELECT team_id, GROUP_CONCAT(order_id SEPARATOR ‘|’ ) AS orders FROM TABLENAME WHERE team_id=9 GROUP BY team_id;

 

则查询的结果为“3|4|5”

 

接下来给order_id进行排序查询

 

SELECT team_id, GROUP_CONCAT(order_id ORDER BY order_id DESC SEPARATOR ‘|’) AS orders FROM TABLENAME WHERE team_id=9 GROUP BY team_id;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值