我读到DB2不支持Limit和Offset。我还读到,您必须使用ROW_NUMBER()和子查询来获得所需的结果。如果这是SQL查询:
$sql = "SELECT * FROM ITEMS LIMIT $offset, $rowsperpage";
其中$offset是偏移量,$rowsperpage是我希望在页面上显示的数据库中的行数,这可能相当于DB2查询。
好吧,根据您使用的DB2平台,您没有阅读完整的故事。DB2LUW支持LIMIT和OFFSET,但必须打开它(不要忘记在设置标志后重新启动DB2)。如果您想按照要求将DB2与ROW_NUMBER()一起使用,您可以编写如下查询:
SELECT *
FROM (SELECT ROW_NUMBER() OVER() AS rn,
items.*
FROM items)
WHERE rn BETWEEN computelowerboundaryhere AND computeupperboundaryhere;
还有一篇概述文章描述了在DB2中执行LIMIT/OFFSET工作的不同方法。
DB2 for I在最新的技术更新(7.1 TR11和7.2 TR3)中也支持LIMIT和OFFSET。