mysql递归查询子类ID查询所有子类
DROP FUNCTION IF EXISTS queryChildrenAreaInfo;
CREATE FUNCTION `queryChildrenAreaInfo` (areaId INT)
RETURNS VARCHAR(4000)
BEGIN
DECLARE sTemp VARCHAR(4000);
DECLARE sTempChd VARCHAR(4000);
SET sTemp = '-1';
SET sTempChd = cast(areaId as char);
WHILE sTempChd is not NULL DO
SET sTemp = CONCAT(sTemp,',',sTempChd);
SELECT group_concat(id) INTO sTempChd FROM user where FIND_IN_SET(uid_1,sTempChd)>0;
END WHILE;
return sTemp;
END;
以上text类型可以改成varchar(1000),如果id长度太长,建议使用text
查询如下:
SELECT * FROM user WHERE FIND_IN_SET(id,queryChildrenAreaInfo('2'))
本文由 我爱PHP169 作者:admin 发表,其版权均为 我爱PHP169 所有,文章内容系作者个人观点,不代表 我爱PHP169 对观点赞同或支持。如需转载,请注明文章来源。