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;

 

你可能感兴趣的:(sql,mysql,Integer)