add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
create table tblreport (
ID int,
Name varchar(10),
ParentID int
);
Insert into tblreport(ID, Name, ParentID)Values(1, '1st', null)
,(2, '2nd', 1)
,(3, '3rd', 1)
,(4, '4th', 2)
,(5, '5th', 3);
SET @var = 1
SELECT *
FROM tblreport
WHERE FIND_IN_SET(ID,(SELECT GROUP_CONCAT(lv SEPARATOR ',')
FROM (SELECT @pv:=(SELECT GROUP_CONCAT(ID SEPARATOR ',')
FROM tblreport
WHERE ParentID IN (@pv)) AS lv
FROM tblreport
JOIN (SELECT @pv:=@var)tmp
WHERE ParentID IN (@pv)) a))
UNION ALL
SELECT *
FROM tblreport
WHERE ID = @var
ORDER BY ID;
ID Name ParentID
1 1st null
2 2nd 1
3 3rd 1
4 4th 2