SELECT
ID.LEVEL,
DATA.*
FROM
(
SELECT
@ids AS _ids,
( SELECT @ids := GROUP_CONCAT( id ) FROM 表名 WHERE FIND_IN_SET( 父级 id字段, @ids ) ) AS cids,
@l := @l + 1 AS LEVEL
FROM
表名,
( SELECT @ids := '条件id', @l := 0 ) b
WHERE
@ids IS NOT NULL
) ID,
表名 DATA
WHERE
FIND_IN_SET( DATA.id, ID._ids )
ORDER BY
LEVEL,
id
MYSQL根据id递归向下查询所有子集和后代
MySQL:根据ID递归查询所有子级记录
于 2023-03-15 18:04:05 首次发布
该文章提供了一个MySQL查询示例,用于根据给定的ID递归地查找所有子级记录。查询使用了FIND_IN_SET和GROUP_CONCAT函数,以及变量@ids和@l来跟踪层级。通过在表中自我连接并动态构建子级ID集合,可以获取到所有子级记录,并按层级排序。
2029

被折叠的 条评论
为什么被折叠?



