MySQL FOUND_ROWS() 方法的 SQL 等效项是啥?
Posted
技术标签:
【中文标题】MySQL FOUND_ROWS() 方法的 SQL 等效项是啥?【英文标题】:What is the DQL Equivalent of MySQL's FOUND_ROWS() Method?MySQL FOUND_ROWS() 方法的 SQL 等效项是什么? 【发布时间】:2012-02-17 02:09:34 【问题描述】:是否有任何方法或技术可以从 select
查询中获取结果数量,就好像它在没有使用 DQL 的 limit
子句的情况下运行一样?这种行为是否类似于在 mysql 中使用 SQL_CALC_FOUND_ROWS
和 FOUND_ROWS()
?
【问题讨论】:
【参考方案1】:是的,是的。 低于 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
一样。以上是关于MySQL FOUND_ROWS() 方法的 SQL 等效项是啥?的主要内容,如果未能解决你的问题,请参考以下文章