1. 程式人生 > >mysql 根據父id 遞迴查詢所有的子類

mysql 根據父id 遞迴查詢所有的子類

1、mysql中建立遞迴查詢方法

-- DROP FUNCTION `getChildrenOrg`  CREATE FUNCTION `getChildrenOrg`(uuid INT) RETURNS text CHARSET utf8 BEGIN     DECLARE sTemp text;     DECLARE sTempChd text;

    SET sTemp = '$';     SET sTempChd =cast(uuid as CHAR); WHILE sTempChd is not null DO

    SET sTemp = concat(sTemp,',',sTempChd);     SELECT group_concat(id) INTO sTempChd FROM tb_club_member where FIND_IN_SET(parentId,sTempChd)>0;

END WHILE;     RETURN sTemp; END

以上text型別可以改成varchar(1000),如果id長度太長,建議使用text

2、如果查詢(查詢id為2的所有子類資訊)

SELECT * FROM tb_club_member WHERE FIND_IN_SET(id,getChildrenOrg('2'))