ホームページ >データベース >mysql チュートリアル >MySQL の「GROUP BY にありません」エラー: 完全な Group By の問題を修正するには?
MySQL で「isn't in GROUP BY」エラーが発生した場合、 SELECT 句で選択された列と GROUP BY に含まれる列の間に不一致があることを示します
上記の例では、最初のクエリ (SELECT count(DISTINCT name)) は単一の列 (name) によって正しくグループ化されていますが、2 番目のクエリ (SELECT name) 、タイプ、言語、コード`) は、GROUP BY` に含まれる列よりも多くの列を取得しようとします。
このエラーを解決するには、選択されたすべての列が GROUP BY 句の一部である必要がある「完全なグループ化」を確保することが重要です。これにより、結果が各グループの正しい概要を表すことが保証されます。
指定されたクエリの正しい構文は次のようになります。
SELECT `name`, `type`, `language`, `code` FROM `users` WHERE `verified` = '1' GROUP BY `name`, `type`, `language`, `code` ORDER BY `count` DESC LIMIT 0, 25
SQL92 では、SELECT 句内のすべての列が GROUP BY 句の一部である必要があります。 SQL99 では、この制限がわずかに緩和され、GROUP BY 句に機能的に依存するカラムが許可されます。
MySQL のデフォルトの動作では、「部分的なグループ化」が許可されています。これは、GROUP BY 句に含まれていないカラムを選択できることを意味します。ただし、これにより非決定的な結果が生じる可能性があります。これを防ぐには、@@sql_mode 変数を「ONLY_FULL_GROUP_BY」に設定します。これにより、MySQL は要件によって完全なグループに準拠するようになります。
以上がMySQL の「GROUP BY にありません」エラー: 完全な Group By の問題を修正するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。