节点关系:
数据表:
解决方法:
创建一个函数:
DROP FUNCTION IF EXISTS queryChildrenAreaInfo;
CREATE FUNCTION queryChildrenAreaInfo(areaId INT)
RETURNS VARCHAR(4000)
BEGIN
DECLARE sTemp VARCHAR(4000);
DECLARE sTempChd VARCHAR(4000);
SET sTemp='$';
SET sTempChd = CAST(areaId AS CHAR);
WHILE sTempChd IS NOT NULL DO
SET sTemp= CONCAT(sTemp,',',sTempChd);
SELECT GROUP_CONCAT(主键id) INTO sTempChd FROM 表名 WHERE FIND_IN_SET(父id,sTempChd)>0;
END WHILE;
RETURN sTemp;
END
调用:
$res1=$Model->query("SELECT * FROM $table WHERE FIND_IN_SET(id,queryChildrenAreaInfo($id))");$table为数据表表,$id为要获取的节点的id