ホームページ >データベース >mysql チュートリアル >MySQL の「SELECT リストが GROUP BY 句にありません」エラーを解決する方法?

MySQL の「SELECT リストが GROUP BY 句にありません」エラーを解決する方法?

DDD
DDDオリジナル
2024-12-22 16:40:13193ブラウズ

How to Resolve MySQL's

MySQL のエラー「SELECT リストが GROUP BY 句にありません」のトラブルシューティング

エラー「SELECT リストの式 #1 がありません」 「GROUP BY 句と非集計列が含まれています」というメッセージは通常、クエリの結果に次のものが含まれる場合に MySQL で発生します。 GROUP BY 句に含まれない非集計列。これは、より厳格なグループ化ルールを適用する sql_mode=only_full_group_by 設定が原因です。

この問題に対処するには、いくつかの解決策があります。

  1. sql_mode=only_full_group_by を無効にする: これは次のように行うことができますコマンド:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
  1. 選択されたすべての列を GROUP BY 句に含める: これにより、SELECT リスト内のすべての列が GROUP BY 操作に確実に含まれます。例:
SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`, `id`
  1. 集計関数を使用する: 個々の列を選択する代わりに、SUM()、COUNT()、AVG( などの集計関数を使用します。 ) データをグループ化します。これにより、GROUP BY 句が不要になります。例:
SELECT `proof_type`, COUNT(*) AS `document_count`
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
      `status` = 'Active'
GROUP BY `proof_type`

SQL モードの変更はベスト プラクティスではないことに注意することが重要です。推奨される解決策は、より厳格なグループ化ルールに準拠するようにクエリを変更することです。

以上がMySQL の「SELECT リストが GROUP BY 句にありません」エラーを解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。