在MySql中,我有类别表,其中包含字段:
如何创建使用相应级别编号
返回所有类别的列表的查询根节点的cat parent_id为0
示例SQL小提琴示例数据:http://sqlfiddle.com/#!9/ba439ae/3
我有MySql版本:5.7.19而Fiddle是5.6
答案 0 :(得分:1)
试试这个:
WITH cte AS
(
SELECT
cat_id,
cat_parent_id,
cat_name,
0 AS level
FROM category
WHERE cat_parent_id = 0
UNION ALL
SELECT
cat.cat_id,
cat.cat_parent_id,
cat.cat_name,
(level + 1) AS level
FROM category cat
INNER JOIN cte c
ON c.cat_id = cat.cat_parent_id
)
SELECT
cat_id,
cat_parent_id,
cat_name,
level
FROM cte
--ORDER BY level;