skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.

Как в Doctrine2 DQL сделать SELECT COUNT(DISTINCT(field1, field2))?

В нативном запросе к PostgreSQL можно без проблем сделать
SELECT COUNT(DISTINCT(t.field1, t.field2)) FROM table t;

В DQL же при такой же конструкции выбрасывается исключение:
QueryException: [Syntax Error] line 0, col 22: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got 'o'


Можно ли это сделать именно в DQL?
  • Вопрос задан
  • 1609 просмотров
Решения вопроса 1
Во-первых, для выражения DISTINCT скобки не нужны.
Во-вторных, DISTINCT в Doctrine не поддерживает несколько аргуементов

В-третьих, для решения предыдущих двух есть хак:
SELECT COUNT(DISTINCT CONCAT(t.field1, t.field2)) FROM table t;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы