Поскольку MySQL 5.7.5 группа по изменению естьДоктрина, как использовать функцию ANY_VALUE MySQL
https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html
Если я этот запрос,
$qb = $this->createQueryBuilder('d');
$qb->select('ANY_VALUE(d.id), d.nom, count(d.nom) as lignes');
$qb->groupBy('d.nom');
$qb->orderBy('d.nom');
У меня есть ошибка
Expression # 1 из SELECT
список отсутствует в пункте GROUP BY
и содержит неагрегированный столбец «sepultures.d0_.id
», который не зависит от функциональности nt в столбцах в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by
Как поясняют в тузд документ, эта проблема может решить с any_value как этот
$qb = $this->createQueryBuilder('d');
$qb->select('ANY_VALUE(d.id), d.nom, count(d.nom) as lignes');
$qb->groupBy('d.nom');
$qb->orderBy('d.nom');
Но доктрина не признает эту функцию
[2/2] QueryException: [Syntax Error] line 0, col 7: Error: Expected known function, got 'ANY_VALUE'
Как я могу разрешить его?
использование мин или max функция? т. е. 'min (d.id)'. Теперь запрос будет действителен во всех диалектах SQL. –
Может быть интересно попробовать добавить функцию sql 'ANY_VALUE' в doctrine2? Может быть, интересно? [Для толпы PHP: добавление пользовательских функций в Doctrine 2 DQL] (http://punkave.com/window/2012/07/24/for-the-php-crowd-adding-custom-functions-to-doctrine-2 -dql). Также: [Пользовательские функции DQL] (http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/dql-user-defined-functions.html). –