Mysql 遍历树方法
Jun 07, 2016 am 11:43 AMMysql遍历一个节点下面的所有子节点的方法。
在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>
END
Mysql使用方法: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元

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)