SQL_MODE による「SELECT リストが GROUP BY と互換性がない」エラーを解決する
MySQL のエラー メッセージ:
式 #1 SELECT リストが GROUP BY 句に含まれておらず、非集計列が含まれています「returntr_prod.tbl_customer_pod_uploads.id」は、GROUP BY 句の列に機能的に依存しません。これは sql_mode=only_full_group_by と互換性がありません。
は、SELECT リストに GROUP BY 句にない非集計列が含まれていることを示します。このエラーは、MySQL のonly_full_group_by SQL モードを使用しているときに発生します。
考えられる解決策:
次の方法で、only_full_group_by モードを一時的に無効にすることができます。次のコマンドを実行します:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
または、クエリを変更して、SELECT リストのすべての列を含めることもできます。 GROUP BYで句:
SELECT * FROM `tbl_customer_pod_uploads` WHERE `load_id` = '78' AND `status` = 'Active' GROUP BY `load_id`, `bill_id`, `latitude`, `langitude`, `proof_type`, `document_type`, `file_name`, `is_private`, `status`, `createdon`, `updatedon`
構造化照会言語のベスト プラクティスとして、すべての列を選択することは避けてください。代わりに、グループ化列で次のような集計関数を使用します。
SELECT MAX(`id`) AS `id`, COUNT(*) AS `total_rows` FROM `tbl_customer_pod_uploads` WHERE `load_id` = '78' AND `status` = 'Active' GROUP BY `load_id`
以上がMySQL の「SELECT リストは GROUP BY と互換性がありません」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。