ホームページ > データベース > mysql チュートリアル > MySQL の「SELECT リストは GROUP BY と互換性がありません」エラーを修正するにはどうすればよいですか?

MySQL の「SELECT リストは GROUP BY と互換性がありません」エラーを修正するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-04 12:20:36
オリジナル
207 人が閲覧しました

How to Fix MySQL's

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 モードを使用しているときに発生します。

考えられる解決策:

  • 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート