1055: Expression not in GROUP BY (only_full_group_by)
MySQLЧто это значит?
В списке SELECT или в HAVING/ORDER BY использован столбец, который не входит в GROUP BY и не обёрнут в агрегатную функцию. Поскольку включён режим SQL ONLY_FULL_GROUP_BY, MySQL отклоняет это недетерминированное выражение.
Почему возникает?
Запрос напрямую выбирает столбец, отличный от группируемых, но у этого столбца может не быть единственного значения на группу. ONLY_FULL_GROUP_BY включён по умолчанию в MySQL 5.7+; запросы, полагающиеся на старое нестрогое поведение GROUP BY, вызывают эту ошибку.
Как исправить
Либо добавьте столбец в список GROUP BY, либо оберните его в агрегатную функцию (MAX(), MIN(), ANY_VALUE()). Если вы знаете, что значение действительно уникально в группе, ANY_VALUE() намеренно подавляет неоднозначность. Отключение режима (удаление ONLY_FULL_GROUP_BY из sql_mode) вместо исправления запроса возвращает риск неверных результатов; избегайте этого.
Ещё по этой СУБД
- 1553Cannot drop index needed in a foreign key constraint
- 3948Loading local data is disabled; this must be enabled on both the client and server sides
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key
- 1267Illegal mix of collations
- 1030Got error N from storage engine
- 1197Multi-statement transaction required more than 'max_binlog_cache_size'
- 1785Statement violates GTID consistency