SELECT
t3.*
FROM
(
SELECT
t1.*,
IF
( find_in_set( parent_id, @pids ) > 0, @pids := concat( @pids, ',', id ), - 1 ) AS ischild
FROM
(
SELECT
*
FROM
test_table
) t1,
( SELECT @pids := '1,2,3' ) t2
) t3
WHERE
ischild != - 1;
find_in_set:查询后者是否包含前者(mysql)