sql使用offset row fetch不够结果

时间:2017-03-31 00:12:27

标签: php mysql mysqli

使用OFFSET行提取请求结果时,如果找到的结果数少于m,会发生什么?你会如何有效地处理它?<​​/ p>

SELECT column-names
FROM table-name
ORDER BY column-names
OFFSET n ROWS
FETCH NEXT m ROWS ONLY

1 个答案:

答案 0 :(得分:0)

结果集总是可以包含比预期更少的行。明智的程序员从不假设结果集将具有精确预测的行数,但始终使用基于是否保留任何行的循环。你继续读行,直到你读完所有行。

一些完全正常的结果集可能根本不包含任何行。考虑这样一种情况:表格中只包含20行,并且您一次只能读取10行。 10行的第三个块将为空。

mysqli的fetch_row()方法文档中的示例清楚地说明了这一点。

if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        /* process the row ... */
    }
    /* free result set */
    $result->close();
}