私はシステムをアップグレードし、作業中のWebアプリケーション用にMySql 5.7.9とphpをインストールしました。動的に作成されるクエリがあります。古いバージョンのMySqlで実行すると、正常に機能します。5.7にアップグレードしてから、次のエラーが発生します。
SELECTリストの式#1がGROUP BY句になく、GROUP BY句の列に機能的に依存しない非集計列 'support_desk.mod_users_groups.group_id'が含まれています。これはsql_mode = only_full_group_byと互換性がありません
サーバーSQLモードのトピックに関する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
オプションをオフにすることはできますか、それとも他に何かする必要がありますか?
さらに情報が必要な場合はお知らせください。
not a GROUP BY expression
それだけです。数値のエラーコードがあり、メッセージがまったくない場合もあります。