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';