查看了很多博客,基本上都不是我想要的,那些函数不能加条件,要么就是GROUP_CONCAT 数据过长,最后修改如下
SELECT id FROM ( SELECT t1.id, IF(FIND_IN_SET(parentid, @pids) > 0, @pids := CONCAT(@pids, ',', id), 0) AS ischild FROM
( SELECT id,parentid FROM AREA t WHERE t.level <=3 ORDER BY parentid, id ) t1, (SELECT @pids := 820000) t2 ) t3 WHERE ischild != 0
82000是父节点,查询它下面的所有子节点,t.level <= 3 是子节点的条件,也可以这样用
SELECT GROUP_CONCAT(id) FROM ( SELECT t1.id, IF(FIND_IN_SET(parentid, @pids) > 0, @pids := CONCAT(@pids, ',', id), 0) AS ischild FROM
( SELECT id,parentid FROM AREA t WHERE t.level <=3 ORDER BY parentid, id ) t1, (SELECT @pids := 820000) t2 ) t3 WHERE ischild != 0