【发布时间】:2012-02-17 02:09:34
【问题描述】:
是否有任何方法或技术可以从 select 查询中获取结果数量,就好像它在没有使用 DQL 的 limit 子句的情况下运行一样?这种行为是否类似于在 MySQL 中使用 SQL_CALC_FOUND_ROWS 和 FOUND_ROWS()?
【问题讨论】:
是否有任何方法或技术可以从 select 查询中获取结果数量,就好像它在没有使用 DQL 的 limit 子句的情况下运行一样?这种行为是否类似于在 MySQL 中使用 SQL_CALC_FOUND_ROWS 和 FOUND_ROWS()?
【问题讨论】:
是的,是的。 低于 2.2 的 Doctrine 版本有 Paginator extension。 从 2.2 版开始 Doctrine 附带了一个 Paginator 用于开箱即用的 DQL 查询。
使用非标准的 DB 功能(如 SQL_CALC_FOUND_ROWS)对于 Doctrine(或其他 DBAL)来说不是很好的做法。 Doctrine 对用户隐藏了所有与 DB 相关的情况。所以你不能考虑将 SQL_CALC_FOUND_ROWS 与 Doctrine 一起使用,除非它不是跨数据库 SQL 的一部分。
【讨论】:
SQL_CALC_FOUND_ROWS一样。