获取类别级别

7cwmlq89  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(368)

在mysql中,我有一个带有字段的category表:
类别id(内部)
类别父id(int)
类别名称(字符串)
如何创建查询,返回所有类别的列表是与相应的级别编号
根节点的cat父节点id为0
示例sql处理示例数据:http://sqlfiddle.com/#!9/ba439ae/3号
我有mysql版本:5.7.19,fiddle版本是5.6

qncylg1j

qncylg1j1#

试试这个:

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;

相关问题