【问题标题】:CakePHP: find('count') and DISTINCT field vs. find('all') and GROUP BY fieldCakePHP:find('count') 和 DISTINCT 字段与 find('all') 和 GROUP BY 字段
【发布时间】:2011-07-26 21:28:47
【问题描述】:

我正在 CakePHP 中构建一个查询,但不能在我的 find('count') 中使用 GROUP BY 语句,因为它会引发错误。因此,我在我的字段列表中使用了 DISTINCT 字段而不是 GROUP BY 语句。

所以,从find('count', array('group' => 'field')) 我现在有了find('count', array('fields' => 'DISTINCT field'))

在应用程序的另一部分,我使用find('all') 来获取与上述相同的记录。在这里,我可以使用GROUP BY 语句,所以我有:

find('all', array('group' => 'field'))

我的问题是:上述两个查询是否返回相同的结果?简而言之,我想确保 DISTINCT fieldfind('count') 组合返回的结果与 GROUP BY fieldfind('all') 组合的结果相同。

【问题讨论】:

  • 您可以查看生成的 sql 查询和/或它们返回的数据以确定这一点。
  • 这将是一个特殊情况。我想确保这普遍适用。
  • GROUP BY 抛出了什么错误?
  • MySQL 中的语法错误。不记得我改变它以反映我上面问的内容。我只想确保两者返回相同的结果;我相信它不依赖于 CakePHP,而是一般的 MySQL。

标签: mysql cakephp group-by distinct


【解决方案1】:

一个旧帖子,但我需要帮助并最终找到答案,所以在这里。

如果你这样做,它们将是相同的......

find('count', array('fields' => 'COUNT(DISTINCT field) as count'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    相关资源
    最近更新 更多