CakePHP: поля find ('count') и DISTINCT против find ('all') и поля GROUP BY - PullRequest
3 голосов
/ 27 июля 2011

Я создаю запрос в CakePHP, но не могу использовать оператор GROUP BY в моем find('count'), поскольку он выдает ошибку.Поэтому я использовал вместо оператора GROUP BY поле DISTINCT в моем списке полей.

Итак, с find('count', array('group' => 'field')) у меня теперь есть find('count', array('fields' => 'DISTINCT field'))

В другой части приложения,Я использую find('all') для получения тех же записей, что и выше.Здесь я могу использовать оператор GROUP BY, поэтому у меня есть:

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

Мой вопрос: оба запроса, описанные выше, дают одинаковые результаты?Вкратце хочу убедиться, что DISTINCT field в сочетании с find('count') возвращает те же результаты, что и GROUP BY field в сочетании с find('all').

1 Ответ

10 голосов
/ 19 мая 2012

Старый пост, но мне понадобилась помощь по этому вопросу, и в итоге я нашел ответ, поэтому вот он.

Они будут такими же, если вы сделаете это ...

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