Sivo 悉见

Mysql递归查询上级

匿名 · 更新于 2021/12/30

表名  
tableName
字段  
id  自身ID
name  名称
parent_id  父级ID

递归,查询本级及所有直属上级

SELECT T2.id, T2.name FROM (      SELECT          @r AS _id,          (SELECT @r := parent_id FROM tableName WHERE id = _id) AS parent_id,          @l := @l + 1 AS lvl      FROM          (SELECT @r := 5, @l := 0) vars,          tableName h      WHERE @r <> 0) T1  JOIN tableName T2  ON T1._id = T2.id  ORDER BY T1.lvl DESC;