ホームページ > php教程 > php手册 > Mysql 遍历树方法

Mysql 遍历树方法

WBOY
リリース: 2016-06-07 11:43:32
オリジナル
1270 人が閲覧しました

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元

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート