小编典典

MySQL按一列分组,但选择所有数据

sql

我有一个包含大量数据的数据库。我想选择所有数据,但是按一列分组。

因此,例如:

column a | column b
example  | apple
example  | pear
example  | orange
example  | strawberry

在示例列中,A是具有重复值且需要分组的列。但是B列具有不同的值,我想选择所有这些值。

最后,我想得到一个查询,导致:

example
- apple
- pear
- orange
- strawberry

B列的值在jQuery手风琴中。

我已经尝试并搜索了几个小时,但仍然没有找到一种方法来进行此操作。

编辑: 我已经设法使用戈登提供的答案解决问题。使用PHP,我分解了查询结果,并通过while循环,从数组中收集了所有数据。

现在,它的工作非常好,谢谢大家!


阅读 162

收藏
2021-03-23

共1个答案

小编典典

我认为您可以使用group_concat()以下方法得到想要的:

select a, group_concat(b)
from t
group by a;

这将为每个a创建一个“ b”列表。在您的示例中:

example    apple,pear,orange,strawberry

您可以使用SEPARATOR关键字更改分隔符。

编辑:

您可以使用group_concat()多次:

select a, group_concat(b) as bs, group_concat(c) as cs
from t
group by a;

或者,将其与concat()

select a, group_concat(concat(b, ':', 'c')) as bcs
from t
group by a;
2021-03-23