Home >php教程 >php手册 >Mysql 遍历树方法

Mysql 遍历树方法

WBOY
WBOYOriginal
2016-06-07 11:43:321265browse

Mysql遍历一个节点下面的所有子节点的方法。
在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。
参考地址:http://blog.csdn.net/ACMAIN_CHM/article/details/4142971CREATE DEFINER=`root`@`localhost` FUNCTION `getChildLst`(`rootId` VARCHAR(100)) RETURNS varchar(2000) CHARSET utf8<br> BEGIN<br>       DECLARE sTemp VARCHAR(1000);<br>       DECLARE sTempChd VARCHAR(1000);<br>       SET sTemp = '$';<br>        SET sTempChd =cast(rootId as CHAR);<br>       WHILE sTempChd is not null DO<br>          SET sTemp = concat(sTemp,',',sTempChd);<br>          SELECT group_concat(id) INTO sTempChd FROM hp_node where FIND_IN_SET(pid,sTempChd)>0;<br>        END WHILE;<br>        RETURN sTemp;<br>    ENDMysql使用方法:SELECT *<br> FROM hp_node<br> WHERE FIND_IN_SET( id, getChildLst( 2 ) ) ThinkPHP使用方法:$model = D('Node');<br> $list = $model->where('FIND_IN_SET( id, getChildLst('.$startId.'))')->select();

AD:真正免费,域名+虚机+企业邮箱=0元

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn