我有一个记录列表,我想通过LIMIT页面,但是没有LIMIT返回的第一个记录也是其余记录的根标识符,我需要为每个页面保留它。这可能吗? (我只是不想运行额外的sql语句)
id | index | title
1 | 0 | index of titles
2 | 1 | title1
3 | 1 | title2
4 | 1 | title3
5 | 1 | title4
LIMIT 3,2应该返回......
id | index | title
1 | 0 | index of titles
4 | 1 | title3
5 | 1 | title4
答案 0 :(得分:3)
SELECT *
FROM (
SELECT *
FROM mytable
WHERE index = 0
ORDER BY
index, id
LIMIT 1
) q
UNION ALL
(
SELECT *
FROM mytable
WHERE index = 1
ORDER BY
index, id
LIMIT 3, 2
) q2
如果您在(index, id)
(MyISAM
)或index
上的索引(InnoDB
)中有复合键,则第一个查询几乎不需要任何费用。