我们在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加载内容,但关于每一刻都在变化的用户的最大点数。
答案 0 :(得分:2)
如果我理解你的问题(我怀疑),你需要一种方法来获取符合搜索条件的其他最高结果,获得第一个N ...
这方面的主要问题是新记录(您在#3中显示)可能会在之前的结果之间 ,从而使您已经获取的记录过时的(按顺序)。
所以,如果你真的想要这个,你应该做两件事:
记住所有您已提取的ID,并在查询中提供NOT IN(list of already fetched ids)
子句中的WHERE
,而不指定 offset (仅限LIMIT 2
)
获取后,将您重新获取的结果数量添加到列表中,并在需要时重新排序(某种插入排序)