表:id, group_name。按 group_name 分組,每頁顯示 2 組,組內數據全顯示。
SELECT * FROM `table`
WHERE `group_name` IN (
SELECT `group_name` FROM `table`
GROUP BY `group_name`
ORDER BY `group_name`
LIMIT 0, 2 -- 第1頁:前2組;第2頁:LIMIT 2, 2
)
ORDER BY `group_name`, `id`;
IN 篩選屬於這些組的所有行分組數較少(幾千以內),子查詢性能可接受。大數據量建議應用層分兩步查詢或用窗口函數(MySQL 8.0+ ROW_NUMBER() OVER (PARTITION BY group_name ORDER BY id))。