业务中,常常碰到例如菜单,商品等多级分类的业务,而大多数程序员都会在程序的循环中去写子类的查询,数据量大、分级多的情况下,效率异常低下,今天分享一波一条SQL查询子分类,并将子分类放入一个字符串中。
看一下我们的原始数据格式:
我们想实现的效果:
好了,开始写代码:
SELECT
a.id,
a.created_at,
a.category_name,
GROUP_CONCAT(DISTINCT(b.category_name)) AS child_name,
b.parent_id
FROM
p_goods_category AS a
LEFT JOIN p_goods_category AS b ON a.id = b.parent_id
WHERE
b.parent_id > 0
GROUP BY
b.parent_id
看一下效果: