ホームページ > データベース > mysql チュートリアル > GROUP BY 句を使用しないと MySQL でクエリを集約できないのはなぜですか?

GROUP BY 句を使用しないと MySQL でクエリを集約できないのはなぜですか?

Susan Sarandon
リリース: 2024-10-26 02:35:02
オリジナル
991 人が閲覧しました

Why Can't I Aggregate Queries in MySQL Without a GROUP BY Clause?

MySQL で GROUP BY を使用しないクエリの集計

GROUP BY 句を指定せずにデータを集計するときに、クエリで構文エラーが発生しました。この動作は、データ集約の整合性を確保する取り組みの一環として MySQL 5.7.5 で導入されました。

エラー メッセージは、クエリ内の ID などの非集約カラムを SELECT に含めることができないことを説明しています。集計関数 (COUNT() など) が GROUP BY 句なしで使用される場合のリスト。これにより、集計結果の正確さと一貫性が保証されます。

エラーの解決

このエラーを解決するには、2 つのオプションがあります:

  1. MySQL 設定の変更: MySQL 設定を変更して、GROUP BY 句なしで SELECT リストで非集計カラムが許可される以前の動作に戻すことができます。ただし、これはデータ集計のベスト プラクティスに違反するため推奨されません。
  2. クエリを変更する: 推奨される解決策は、結果をグループ化する GROUP BY 句を含めるようにクエリを変更することです。非集計列。あなたの場合、次の更新されたクエリを使用できます:
SELECT id, password, COUNT(id) AS count 
FROM users 
WHERE email = :email 
GROUP BY id, password 
LIMIT 1
ログイン後にコピー

または、非集計列 (id など) が WHERE 内の単一の値に制限されていることを確認できる場合は、句を使用する場合は、GROUP BY 句から除外できます。この例外の例については、提供されているリンクを参照してください。

これらの方法のいずれかを使用すると、エラーを解決し、MySQL クエリでデータを正しく集計できます。

以上がGROUP BY 句を使用しないと MySQL でクエリを集約できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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