我有一个标准的分层表 ID/PID,如果某个 child 属于某个 ID,我需要查找( bool 值)。有没有办法在 mysql 中执行此操作?
ID PID
------------
1 0 <- root
... ...
... ...
... ...
7 1
... ...
16 1
... ...
4 0
... ...
22 16
25 16
有没有办法知道子节点 22 是否属于节点 1 ?我问是因为我想执行一些删除程序,其中节点 1 是我的回收站。所有属于 1 的删除将被永久删除,所有其他删除将替换 PID,因此暂时属于 1。
非常感谢,
最佳答案
基于 Hierarchical queries in MySQL :
SET @x := 22;
SET @y := 0;
select 'yes' as x_comes_from_y
from dual
where @y in
(
SELECT @id :=
(
SELECT pid
FROM h
WHERE id = @id
) AS nodes
FROM (
SELECT @id := @x
) vars
STRAIGHT_JOIN
h
WHERE @id IS NOT NULL
);
关于php - mysql,查找父节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14661525/