如何实现MySQl的递归查询
===============================
现在由一个Table结构如下
ID ParentID Title Content
1 0 XXX YYY
2 1 XXXX YYYY
3 1 ydf dfa
4 0 dfa gfg
5 4 df dff
6 3 dfdsf dssdr
.............
================================
现在我需要的是,提供一个ID,需要把所有下属都列出来(当然包括下属的下属)..应如何查询
===============================
现在由一个Table结构如下
ID ParentID Title Content
1 0 XXX YYY
2 1 XXXX YYYY
3 1 ydf dfa
4 0 dfa gfg
5 4 df dff
6 3 dfdsf dssdr
.............
================================
现在我需要的是,提供一个ID,需要把所有下属都列出来(当然包括下属的下属)..应如何查询
select ID, ParentID, Title, Content from table where ParentID = ?如果该ID也要列出
select ID, ParentID, Title, Content from table where ParentID = ? or ID = ?
你这里实际上只要加一个字段就Ok了。比如这个字段叫tree_code,字符串类型的。ParentId为0的那些字段存储001,002,003...。而ParentId为
1的那个存储001001,001002,001003.....;ParentId为2的那些字段存储002001,002002,002003.....。
这样要查某个节点下的所有字节点就可以通过"like '001%'"这样就可以搞定了。
不过这样麻烦的一点就是你需要维护这样一个tree_code字段。
不是提供了一个ID吗,那么随便是pid 还是id都没关系,其他的信息都会筛选出来