mysql子类是什么,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'))