我不确定这叫什么,但它总是会发生,你会得到如下的结果集:
(id,name,age,favorite)
0,John Smith,21,Pepperoni
1,John Smith,21,Ham
2,John Smith,21,Olives
3,John Doe,54,Tomatoes
4,John Doe,54,Potatoes 现在,当您迭代此结果集时,如何连接具有相似name和ages的行的最后一列?以获得像John Smith,21,"Pepperoni,Ham,Olives"这样的结果。这个动作一般叫什么?如果有必要的话,我会使用JDBC-MySQL。
谢谢
发布于 2011-06-30 18:11:33
此操作可以在MySQL中使用GROUP_CONCAT完成:
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
SELECT name, age, GROUP_CONCAT(favorite SEPARATOR ',')
FROM myTable
GROUP BY name, age注意,GROUP_CONCAT只在MySQL中存在,而不是标准的SQL。
您不能在其他DBMS中使用查询做到这一点。
发布于 2011-06-30 18:11:22
在MySQL上,您可以使用group_concat做到这一点
select
id,
name,
age,
group_concat(favorite separator ',')
from
YourTable
group by
id,
name,
age发布于 2011-06-30 18:10:49
您的数据是normalised吗?如果是,并且您的收藏夹存储在单独的表中,请使用GROUP_CONCAT将它们连接起来。
https://stackoverflow.com/questions/6533140
复制相似问题