我有一个称为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/