ホームページ > データベース > mysql チュートリアル > MySQL の「GROUP BY にありません」エラー: 完全な Group By の問題を修正するには?

MySQL の「GROUP BY にありません」エラー: 完全な Group By の問題を修正するには?

Patricia Arquette
リリース: 2024-12-05 12:21:10
オリジナル
686 人が閲覧しました

MySQL

MySQL の Group By エラー: 「'isn't in 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
ログイン後にコピー

SQL 標準と MySQL の動作

SQL92 では、SELECT 句内のすべての列が GROUP BY 句の一部である必要があります。 SQL99 では、この制限がわずかに緩和され、GROUP BY 句に機能的に依存するカラムが許可されます。

MySQL のデフォルトの動作では、「部分的なグループ化」が許可されています。これは、GROUP BY 句に含まれていないカラムを選択できることを意味します。ただし、これにより非決定的な結果が生じる可能性があります。これを防ぐには、@@sql_mode 変数を「ONLY_FULL_GROUP_BY」に設定します。これにより、MySQL は要件によって完全なグループに準拠するようになります。

以上がMySQL の「GROUP BY にありません」エラー: 完全な Group By の問題を修正するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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