如何分离group_concat结果

时间:2014-12-21 04:54:07

标签: mysql

我在项目的聚合函数中使用Group concat来显示类别的子类别。

这是MYSQL查询。

$sql_query = "SELECT TC.category_name, GROUP_CONCAT(TS.sub_category_name ORDER BY TS.sub_category_name)  from table_categories as TC
    INNER JOIN
    table_subcategory_categories as TSC
    ON
    TSC.category_id = TC.category_id

    INNER JOIN
    table_subcategories as TS
    ON
    TS.sub_categories_id = TSC.subcategory_id

    GROUP BY TC.category_id
    order by TC.category_name";

问题是我需要将这些子类别作为单独的实体进行处理。但由于Group concat,他们成为一个单一的实体。

这是什么解决方案?

是否有任何替代的Group concat可以实现相同的目标。

电流:

Body Wash           <a>Bathing Soap|Shower Gel</a>  delete

这种删除在这里毫无意义。

期待:

Body Wash           <a>Bathing Soap</a>   delete
                    <a>Shower Gel</a>     delete

2 个答案:

答案 0 :(得分:0)

那么为什么不删除GROUP_CONCAT ...?

$sql_query = "SELECT TC.category_name, TS.sub_category_name
from table_categories as TC
INNER JOIN
table_subcategory_categories as TSC
ON
TSC.category_id = TC.category_id

INNER JOIN
table_subcategories as TS
ON
TS.sub_categories_id = TSC.subcategory_id

order by TC.category_name, TS.sub_category_name";

答案 1 :(得分:0)

尝试删除group by

select TC.category_name, TS.sub_category_name
from table_categories TC INNER JOIN
    table_subcategory_categories TSC
    ON TSC.category_id = TC.category_id INNER JOIN
    table_subcategories TS
    ON TS.sub_categories_id = TSC.subcategory_id
order by TC.category_name, TS.sub_category_name;

您将获得多行的值。您还将在每行中重复category_name次。这就是SQL结果集的工作方式。如果您不想重复该类别,请在应用程序端执行某些操作以获得所需的结果。

相关问题