システムをアップグレードし、作業中の Web アプリケーション用の PHP を使用して MySql 5.7.9 をインストールしました。動的に作成されたクエリがあり、MySql の古いバージョンで実行すると正常に動作します。5.7 にアップグレードしてから、次のエラーが表示されます。
SELECT リストの式 #1 は GROUP BY 句になく、GROUP BY 句の列に機能的に依存していない非集計列 'support_desk.mod_users_groups.group_id' が含まれています。これは sql_mode=only_full_group_by と互換性がありません
Server SQL Modesのトピックに関する Mysql 5.7 のマニュアル ページに注意してください。
これは私に問題を引き起こしているクエリです:
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
できますか、それとも他に何かする必要がありますか?
さらに情報が必要な場合はお知らせください。