SELECT id ,
name,
parent_id
FROM ( SELECT id ,
name ,
parent_id,
CASE
WHEN @parent_id = parent_id
THEN @rownum := @rownum + 1
ELSE @rownum := 1
END AS rn,
@parent_id := parent_id
FROM (SELECT 1 as ID, 'haim' as NAME, 1 as parent_id
UNION ALL SELECT 2, 'gil', 2
UNION ALL SELECT 3, 'alon', 1
UNION ALL SELECT 4, 'idan', 1
UNION ALL SELECT 5, 'shai', 3
UNION ALL SELECT 6, 'adi', 2
UNION ALL SELECT 7, 'itay', 3
UNION ALL SELECT 8, 'aviram', 1
UNION ALL SELECT 9, 'lioz', 3
UNION ALL SELECT 10, 'amit', 2
UNION ALL SELECT 11, 'ben', 2
UNION ALL SELECT 12, 'eran', 1
)
YourTable
JOIN
(SELECT @rownum := 0,
@parent_id := NULL) r
ORDER BY parent_id
)
x
WHERE rn<=2
source
share