如何在mysql中获取特定id之后的记录

时间:2012-07-11 11:04:11

标签: mysql select sql-order-by

我们在mysql上有这个:


并希望以2限制返回
    1- "SELECT * FROM table ORDER BY point DESC LIMIT 0,2" //返回'google'& '的jsfiddle'
    2- "SELECT * FROM table ORDER BY point DESC LIMIT 2,2" //返回'stackoverflow'& 'MSN'
    3- "INSERT INTO table SET id = 11, name = 'gmail', point = 101 "
    4- "SELECT * FROM table ORDER BY point DESC LIMIT 4,2" //返回'msn'& 'EMRA'


数字4中的'msn'是重复的。我想要4号回归'emra'&的Facebook'。


我可以保存'id',我想要在该id之后返回记录的查询。

[编辑] 让我以另一种方式提问:

我们有这样的记录:

id, name, point
4, 'google', 100
6, 'yahoo', 100
3, 'gmail', 100
8, 'ymail', 100
2, 'fb', 100


我有id:3并想要在此id后面的选择记录(在此示例中为'ymail','fb')



这是一个通过scorlling(如facebook)的ajax加载内容,但关于每一刻都在变化的用户的最大点数。

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题(我怀疑),你需要一种方法来获取符合搜索条件的其他最高结果,获得第一个N ...

这方面的主要问题是记录(您在#3中显示)可能会在之前的结果之间 ,从而使您已经获取的记录过时的(按顺序)。

所以,如果你真的想要这个,你应该做两件事:

  1. 记住所有您已提取的ID,并在查询中提供NOT IN(list of already fetched ids)子句中的WHERE,而不指定 offset (仅限LIMIT 2

  2. 获取后,将您重新获取的结果数量添加到列表中,并在需要时重新排序(某种插入排序)