我有一个称为articles的SQL表,将从中加载行除以页面。我的SQL是

SELECT ...
ORDER BY $orderCol DESC
LIMIT $offset, $numPerPage


在第一页上,限制为0, $numPerPage,在第二页上为$numPerPage, 2 * $numPerPage,依此类推。

问题:在加载第2页之前插入新行时,第1页中的最后一篇文章将是第2页中的第一篇文章,以此类推。如何避免这种情况?

我曾考虑过要添加一个WHERE子句以选择从最后一个$orderCol开始的文章,但是此字段不是唯一的(在我的情况下,这是一个日期),因此在这里我会错过具有相同值的文章。主索引也是一个问题,因为它的排序方式与$orderCol不同

不必在任何时候出现新添加的行。这将需要刷新。

最佳答案

您的LIMIT应该类似于以下内容。定义一个$page变量,该变量将从所需的1 .. no.of pages更改。

LIMIT $offset, $page * $numPerPage


好的,在这种情况下,您每次(刷新时)都必须重新计算$pages$numPerPage变量,并相应地定义分页。

关于mysql - SQL:分页而不从动态表重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41140741/

10-12 16:26