【发布时间】:2015-12-13 09:22:37
【问题描述】:
我需要过滤(使用 where 子句)表中的行,计算此过滤器的总行数,然后限制分页的行数。
什么是最快/更有效的?
- 使用 sql 查询计算行数。使用 sql 查询选择有限制的行。
- 使用 sql 查询选择所有行。用 PHP 计算数组。用 PHP 拆分数组。
或者有没有其他方法来计算所有行并得到一组有限的结果?
【问题讨论】:
-
1 是这样您就知道您有多少页,2 在限制范围内选择 -> petefreitag.com/item/451.cfm 显示在第 x 页上
-
你想要这个功能:dev.mysql.com/doc/refman/5.0/en/… 有它,不需要运行你的查询两次。
-
我知道你问的不是框架,但你应该考虑使用一个,比如 Laravel (laravel.com/docs/5.1/queries#ordering-grouping-limit-and-offset)。这样的操作会容易很多。
-
我在使用 Laravel,不幸的是 eloquent 不适合复杂的查询,所以必须使用 raw。
-
@PedroMoreira 这确实是一个数据库问题,而不是框架问题。无论框架如何,答案都是一样的,例如我在 F3 框架、WordPress、Java 等中使用示例中的代码。