很感谢大神进来。
我下面代码有个问题。要一直持续 循环下去。 不知道怎么写了。 这个我只写到了5级。 但实际情况可能有20级感谢大神帮我解决下啊。谢谢。
SELECT id,hhr_name,parent_id,tjr_id FROM gbi_hhr WHERE id = 90 OR
id IN ((SELECT id FROM gbi_hhr WHERE tjr_id = 90 AND sf_type ='战略') )OR
id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE id IN ((SELECT id FROM gbi_hhr WHERE tjr_id = 90 AND sf_type ='战略') )) )OR
id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE id IN ((SELECT id FROM gbi_hhr WHERE tjr_id = 90 AND sf_type ='战略') )) ) )OR
id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE id IN ((SELECT id FROM gbi_hhr WHERE tjr_id = 90 AND sf_type ='战略') ))) ) )
我下面代码有个问题。要一直持续 循环下去。 不知道怎么写了。 这个我只写到了5级。 但实际情况可能有20级感谢大神帮我解决下啊。谢谢。
SELECT id,hhr_name,parent_id,tjr_id FROM gbi_hhr WHERE id = 90 OR
id IN ((SELECT id FROM gbi_hhr WHERE tjr_id = 90 AND sf_type ='战略') )OR
id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE id IN ((SELECT id FROM gbi_hhr WHERE tjr_id = 90 AND sf_type ='战略') )) )OR
id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE id IN ((SELECT id FROM gbi_hhr WHERE tjr_id = 90 AND sf_type ='战略') )) ) )OR
id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE sf_type != '战略' AND tjr_id IN (SELECT id FROM gbi_hhr WHERE id IN ((SELECT id FROM gbi_hhr WHERE tjr_id = 90 AND sf_type ='战略') ))) ) )
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 t_areainfo WHERE FIND_IN_SET(parentId,sTempChd)>0;
END WHILE;
RETURN sTemp;
END;