在mysql中选择下一个/前10行

在mysql中选择下一个/前10行,mysql,Mysql,我有一个只显示10行的列表 我需要选择下10行和前10行 但是,我用作参考的ID并不完全符合顺序 e、 g: 如何使用ID选择接下来的几行?您可以尝试限制: select * from `table` limit <startIndex>,<NumberOfRecords>; 这将从第6行开始返回10行。您可以使用MySQL的limit关键字。可能的查询是 ( SELECT * FROM mytable WHERE id < $myid ORDER B

我有一个只显示10行的列表

我需要选择下10行和前10行

但是,我用作参考的ID并不完全符合顺序

e、 g:

如何使用ID选择接下来的几行?

您可以尝试限制:

select * from `table` limit <startIndex>,<NumberOfRecords>;

这将从第6行开始返回10行。

您可以使用MySQL的limit关键字。

可能的查询是

(
SELECT  *
FROM    mytable
WHERE   id < $myid
ORDER BY
        id DESC
LIMIT 10
)
UNION ALL
(
SELECT  *
FROM    mytable
WHERE   id >= $myid
ORDER BY
        id
LIMIT 10
)
ORDER BY
        id
SELECT * FROM mytable WHERE id > current_id LIMIT 10
前10年

SELECT * FROM mytable WHERE id < current_id ORDER BY id DESC LIMIT 10

首先选择10个第一个值:

SELECT * FROM `leave_type` ORDER BY id asc limit 10;
然后

select * from `leave_type` limit 10, 10;

将显示第10个值范围10之后的行,并从第11个开始。

起始索引是否为ID?我用什么作为参考?谢谢,我怎样才能得到startindexrow号码?很抱歉,在mysql中仍然是新的。@tep:如果列中有顺序Id,则将Id作为行号。如何获取第10行的Id,以便用户再次单击“下一步”时,接下来的10行将再次显示。@tep:您必须将其保存在代码中的某个位置。或者,您可以使用表限制9,1中的SELECT id;或者使用类似的查询在mysql.im中找到rownum的一些实现。但是,我遇到的问题是id。一些行被重复显示。嗨,我使用的查询与此类似。但是,如何更新ID,以便当用户再次单击next时,接下来的10行将再次显示;您不是依赖于始终按顺序获取id才能使其正常工作吗?当然应该是这样,但总是有可能删除了一行,因此接下来的10个ID不一定是接下来的10个数字。如果不知道上一次运行结束时的id,那么最终可能会出现重复的结果。
SELECT * FROM `leave_type` ORDER BY id asc limit 10;
select * from `leave_type` limit 10, 10;