MySQL 5.7 では集計クエリには GROUP BY が必要です
Q: MySQL 5.7.14 にアップグレードした後、クエリの実行時にエラーが発生しましたGROUP BY 句なし。このクエリには、集計 (COUNT) と SELECT リスト内の非集計列が含まれており、以前は古いマシンで動作していました。
A: MySQL バージョン 5.7.5 以降では、デフォルトの動作が変更されました。データを集計するときに GROUP BY の使用を強制します。これは、SELECT 句で COUNT などの関数を使用する場合、すべての非集計列を GROUP BY 句に含める必要があることを意味します。
エラーを解決するには、2 つのオプションがあります:
<code class="sql">SELECT id, password, COUNT(id) AS count FROM users WHERE email = :email GROUP BY id, password LIMIT 1</code>
MySQL 5.7.5 以降には例外が存在することに注意することが重要です。 WHERE 句のフィルターを使用して、非集計列が単一の値に制限されている場合。このような場合、非集計列を GROUP BY 句から除外できます。詳細については、公式ドキュメントを参照してください。
以上がGROUP BY 句を使用しないと、集計を使用した MySQL 5.7 クエリが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。