mysql,使用group_concat

问题描述:

任何人都可以让我知道如何限制在MySQL中的每个组的GROUP_CONCAT值的数量?我使用下面的查询也为每个组mysql,使用group_concat

SELECT GROUP_CONCAT(remaining) 
    FROM `busroute` 
GROUP BY bus 

任何人都可以让我知道如何修改我的问题上面的查询生产超过2个连接值?

+0

在使用'GROUP_CONCAT'之前,您需要一个派生表/内嵌视图,其中只包含最终结果中想要的值。这个问题缺乏正确回答的必要细节。 – 2011-05-16 04:22:10

我不知道一种方法来限制分组的行数,我认为你不能这样做。

但如果你只打算想有要组两行,您可以在两行做一次分组和手动GROUP_CONCAT只有组:

SELECT t1.bus, concat(t1.remaining, ',', t2.remaining) 
FROM busroute as t1 
    JOIN busroute as t2 on t1.bus = t2.bus 
WHERE t1.id < t2.id 

这里,我们刚刚获得了busroute表的两个副本,然后将它们连接到总线号码上,然后我们在该行中取一些唯一的列值(只要列上的唯一属性设置为列即可),并消除匹配一排反对自己。我使用'<'而不是'<>',因为我只想匹配同一对非唯一行一次。