mysql 查树型结构

时间:2022-06-01 20:37:55
id pid
1 -1
2 -1
3 1
4 1
5 1
6 2


如上表格pid是id的父节点,-1表示根节点,如果要查某个节点所在树的所有节点(根节点除外),例如查1,那么应返回1、3、4、5;查3,同样返回1、3、4、5;以下是查询sql,虽然有点繁琐,不知效率如何,还是能查出结果,哪位兄弟有简单点的方法。


select * from table where id = $id or pid = $id 
or pid = (select pid from table where id= $id and pid <> -1)

or id = (select pid from table where id= $id and pid <> -1)