MySQL:使用LIMIT的多个SELECT语句

时间:2014-06-29 21:14:54

标签: mysql sql

我有以下SELECT语句,它允许我按降序显示每页10个项目:

SELECT * FROM items ORDER BY date DESC LIMIT XXXX, 10

XXXX是为每个页面(XXXX = page number * 10)计算的值。因此,对于页面0,XXXX将为0,对于页面1为10,对于页面2为20,等等。

这似乎完美无缺,但是当新项目添加到数据库时,以前页面中的项目开始显示在当前页面中。

您能否建议使用MySQL或软件工程方法来忽略新插入的项目并保留项目的初始顺序?

1 个答案:

答案 0 :(得分:1)

您只需要一个参数来表示请求页面的时间。例如,在URL中传递时间参数(如果是Web应用程序)或者只是将其存储在变量中(如果是桌面/服务器应用程序),确保验证它以防止SQL注入攻击,然后将其添加到查询中的WHERE子句中。

或者,正如Strawberry所说,在某种程度上处理应用程序级别的分页。如何执行此操作取决于您使用的应用程序类型(Web与桌面或服务器)。