В MySql у меня есть таблица категорий с полями:
Как создать запрос, который возвращает список из всех категорий с соответствующим номером уровня
cat parent_id для корневых узлов - 0
образец SQL Fiddle с образцовыми данными: http://sqlfiddle.com/#!9/ba439ae/3
У меня версия MySql: 5.7.19, а Fiddle - 5.6
Попробуй это:
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;