MySQL: ошибка связанная с “ONLY_FULL_GROUP_BY”

Опубликовано:

Дело в том, что в последних версиях MySQL опция «ONLY_FULL_GROUP_BY» активирована по умолчанию. Эта опция заставляет сервер понимать только те запросы с «GROUP BY», в которых для группировки указываются все неагрегирующие поля, указанные в «SELECT» согласно стандарту SQL. Поэтому нередко встречаются ошибки при выборке, например:

Для решения этой проблемы достаточно отключить опцию «ONLY_FULL_GROUP_BY» как глобально, так и для текущей сессии, такими запросами как:

SET global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
SET session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';