mysql,使用group_concat

时间:2011-05-16 03:13:31

标签: mysql sql aggregate-functions

有人能告诉我如何限制MySQL中每个组GROUP_CONCAT的值数量?我正在使用以下查询,该查询还为每个组生成2个以上的连接值

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

有人可以让我知道如何针对我的问题修改上述查询吗?

1 个答案:

答案 0 :(得分:0)

我不知道如何限制分组的行数,我认为你不能这样做。

但是,如果您只想要分组两行,则可以手动进行分组和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表副本,然后在总线号上将它们连接在一起,然后我们在行中获取一些唯一的列值(可以是任何列,只要它的列作为唯一属性设置它)并消除一行与自己的匹配。我用'&lt;'而不是'&lt;&gt;'因为我只希望匹配同一对非唯一行一次。