-- ppid參數(因為和下邊pid重復),查詢sql自行替換,數據庫名自行替換 CREATE DEFINER=`by`@`%` FUNCTION `getUserChilds`(`ppid` INT) RETURNS varchar(4000) CHARSET utf8 NO SQL BEGIN DECLARE sTemp VARCHAR(4000); DECLARE sTempChd VARCHAR(4000); SET sTemp=''; SET sTempChd = CAST(ppid AS CHAR); WHILE sTempChd IS NOT NULL DO SET sTemp= CONCAT(sTemp,',',sTempChd); SELECT GROUP_CONCAT(id) INTO sTempChd FROM by_user WHERE FIND_IN_SET(pid,sTempChd)>0; END WHILE; RETURN sTemp ; END -- 返回的是 '1,2,3,4,5' 的字符串 -- pid參數, 查詢sql如下: select * from user bul where FIND_IN_SET(id, getUserChilds(pid))
