【发布时间】:2021-02-18 20:39:55
【问题描述】:
如何在不使用 id 的情况下使用 ajax 加载之前未加载的行?因为排序行不是按id。
【问题讨论】:
-
任何示例代码?
-
如果您的订单已设置,您可以将分页基于
ROW_NUMBER()。
如何在不使用 id 的情况下使用 ajax 加载之前未加载的行?因为排序行不是按id。
【问题讨论】:
ROW_NUMBER()。
在 SELECT 语句中使用 LIMIT 子句:
SELECT * from <table> ORDER BY <something> LIMIT <start>, <count>
例如:
SELECT * from myTable ORDER BY `orderDate` DESC LIMIT 5,10 -- returns rows 6-15 (LIMIT counts from 0)
您需要跟踪已返回的行。您可以使用 $_SESSION 变量来执行此操作,该变量存储要返回的下一行的偏移量。
因此,如果您如上所述检索了第 6-15 行,则可以使用
$_SESSION['nextOffset'] = 15;
然后
$query = "SELECT * from myTable ORDER BY `orderDate` DESC LIMIT ".$_SESSION['nextOffset'].','.($_SESSION['nextOffset']+10);
$_SESSION['nextOffset'] += 10;
毫无疑问,本地 SQL 警察会在连接变量时遇到问题,但在这种情况下,变量数据完全在您的控制之下,所以它是安全的。如果您包含基于用户输入的 WHERE 子句,那么您将转到准备好的语句。
【讨论】: