2013-08-23 59 views
0

我有一个表,并在该表中有多个列。一列有许多类别,其中许多类别是重复的。另一列属于各自类别的元素也具有重复元素。MYSQL select该类别下不同的类别和列表项目

两列像这样的例子

categorytype elements   

Fruits   Grapes 
Fruits   Grapes 
Vegetables  Carrots 
Vegetables  Beets 
Vegetables  Beets 
Fruits   Apples 
Fruits   Oranges 
Meats   Beef 
Meats   Pork 
Meats   Pork 
Juices   Orange Juice 
Juices   Milk 
Juices   GrapeFruit Juice 

我希望能够拉动明显的类别和类别列下明确的其他元素。所以输出如下所示:

Fruits 
    Grapes 
    Apples 
    Oranges 

    Vegetables 
    Beets 
    Carrots 

    Meats 
    Beef 
    Pork 

这就是我的MYSQL语句的样子,但它当然只返回元素。所以我想弄清楚如何明确分类。

mysql_query(“SELECT DISTINCT元素FROM fchart GROUP BY元素ORDER BY categorytype”);

+0

“order by”没有必要 –

回答

1

你可以为每个类别元素列表:

select categorytype, group_concat(distinct elements) 
from t 
group by categorytype; 

这将它们作为一个逗号分隔的列表。

+0

谢谢我只是试过,它的工作原理。我唯一需要做的事情是在GROUP_CONCAT函数中添加DISTINCT以删除重复的元素。 – knard