在 MySQL 中查找具有偏移和限制的总结果
分页允许用户以可管理的块的形式浏览大型数据集。但是,确定总页数需要知道结果总数。当使用偏移量和限制进行分页时,运行相同的查询两次似乎效率很低,一次有限制,一次没有限制。
SQL_CALC_FOUND_ROWS:解决方案
要解决这个问题,MySQL提供了一个特殊的关键字:SQL_CALC_FOUND_ROWS。通过将此关键字添加到查询的开头,MySQL 将计算并存储在没有 LIMIT 子句的情况下返回的总行数。
示例查询:
<code class="sql">SELECT SQL_CALC_FOUND_ROWS * FROM table_name WHERE category_id = '1' ORDER BY date_created DESC LIMIT 10 OFFSET 20;</code>
检索结果总数:
执行上述查询后,您可以使用以下 PHP 代码检索结果总数:
<code class="php">$totalRows = $db->query('SELECT FOUND_ROWS() AS total')->row()->total;</code>
SQL_CALC_FOUND_ROWS 的好处:
以上是如何在带有偏移量和限制的 MySQL 分页中查找结果总数?的详细内容。更多信息请关注PHP中文网其他相关文章!