- CREATE DEFINER=`root`@`localhost` FUNCTION `getChildLst`(`rootId` VARCHAR(100)) RETURNS varchar(2000) CHARSET utf8
- BEGIN
- DECLARE sTemp VARCHAR(1000);
- DECLARE sTempChd VARCHAR(1000);
- SET sTemp = '$';
- SET sTempChd =cast(rootId as CHAR);
- WHILE sTempChd is not null DO
- SET sTemp = concat(sTemp,',',sTempChd);
- SELECT group_concat(id) INTO sTempChd FROM hp_node where FIND_IN_SET(pid,sTempChd)>0;
- END WHILE;
- RETURN sTemp;
- END
復(fù)制代碼
Mysql使用方法:- SELECT *
- FROM hp_node
- WHERE FIND_IN_SET( id, getChildLst( 2 ) )
復(fù)制代碼
ThinkPHP使用方法:- $model = D('Node');
- $list = $model->where('FIND_IN_SET( id, getChildLst('.$startId.'))')->select();