我有以下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或软件工程方法来忽略新插入的项目并保留项目的初始顺序?
答案 0 :(得分:1)
您只需要一个参数来表示请求页面的时间。例如,在URL中传递时间参数(如果是Web应用程序)或者只是将其存储在变量中(如果是桌面/服务器应用程序),确保验证它以防止SQL注入攻击,然后将其添加到查询中的WHERE
子句中。
或者,正如Strawberry所说,在某种程度上处理应用程序级别的分页。如何执行此操作取决于您使用的应用程序类型(Web与桌面或服务器)。