Я оновив свою систему і встановив MySql 5.7.9 з php для веб-програми, над якою працюю. У мене є запит, який динамічно створюється, і при запуску в старих версіях MySql він працює чудово. Після оновлення до 5.7 я отримую цю помилку:
Вираз №1 списку SELECT не міститься в пункті GROUP BY і містить неагреговану колонку 'support_desk.mod_users_groups.group_id', яка функціонально не залежить від стовпців у пункті GROUP BY; це несумісно з sql_mode = only_full_group_by
Зверніть увагу на сторінку керівництва для Mysql 5.7 на тему режимів сервера SQL .
Це запит, який доставляє мені проблеми:
SELECT mod_users_groups.group_id AS 'value',
group_name AS 'text'
FROM mod_users_groups
LEFT JOIN mod_users_data ON mod_users_groups.group_id = mod_users_data.group_id
WHERE mod_users_groups.active = 1
AND mod_users_groups.department_id = 1
AND mod_users_groups.manage_work_orders = 1
AND group_name != 'root'
AND group_name != 'superuser'
GROUP BY group_name
HAVING COUNT(`user_id`) > 0
ORDER BY group_name
Я робив певний гугл з цього питання, але я недостатньо розумію only_full_group_by
, щоб зрозуміти, що мені потрібно зробити, щоб виправити запит. Чи можу я просто вимкнути only_full_group_by
варіант, чи потрібно щось ще зробити?
Повідомте мене, якщо вам потрібна додаткова інформація.
not a GROUP BY expression
" Це все. Вони також можуть просто мати числовий код помилки і взагалі немає повідомлення.