我有一个Web应用程序,当你进入页面时,会调用ajax来获取数据库中的所有数据。它将数据存储到Global变量中,当用户向下滚动页面时,它会将更多内容加载到页面中。现在我希望能够调用数据库并在向下滚动时从数据库中抓取20个项目,而不是在页面加载时全部获取它们。有这样做的好方法吗?谢谢你的帮助。
这是我想做的 1.Page load(获得前20项) 2.当它们向下滚动到底部附近(Ajax调用以获得下一个20并将其附加到表,列表等)
mysql帮助正确查询。
答案 0 :(得分:7)
MySQL支持selects上的LIMIT
关键字,例如:
SELECT foo,bar
FROM charlie
WHERE criterion = value
LIMIT 20
它最多接受两个参数。如果您提供一个,则返回的行数(最大值)。如果提供两个,则第一个是偏移(跳过)值,第二个是限制。例如。 (来自文档):
SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15
将LIMIT
与ORDER BY
结合使用并禁止插入,即可进行分页。
答案 1 :(得分:2)
是的,SELECT上的LIMIT选项可以解决问题。您显然还需要跟踪当前位置,并使用LIMIT的偏移量参数来确保您继续向前移动。
LIMIT [offset],限制
因此,在查询前20个之后,您需要存储该位置(20),然后将其用作偏移量:
LIMIT 20,20
然后你需要增加偏移量,以便你的限制为:
LIMIT 40,20