mysql / php:在分页时保留额外的记录

时间:2009-08-04 10:06:16

标签: sql mysql paging

我有一个记录列表,我想通过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

1 个答案:

答案 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)中有复合键,则第一个查询几乎不需要任何费用。