ホームページ >データベース >mysql チュートリアル >MySQL が「isn't in GROUP BY」エラーをスローするのはなぜですか?それを修正するにはどうすればよいですか?

MySQL が「isn't in GROUP BY」エラーをスローするのはなぜですか?それを修正するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-21 02:42:10615ブラウズ

Why Does MySQL Throw an

MySQL エラー: 'isn't in GROUP BY'

MySQL は、取得時に「isn't in GROUP BY」エラーを生成することがよくあります特定のクエリを使用してテーブルからデータを取得します。原因とその解決方法を理解することが重要です。

背景:

MySQL では、COUNT などの集計関数を除く、SELECT 句に含まれるすべてのカラムも必要です。 GROUP BY 句に含める必要があります。これにより、結果が、指定された列に個別の値を持つデータのグループに基づいていることが保証されます。

エラー例:

この例では、次の使用時にエラーが発生します。クエリ:

SELECT `name`, `type`, `language`, `code` 
FROM `users` 
WHERE `verified` = '1' 
GROUP BY `name` 
ORDER BY `count` DESC LIMIT 0, 25

MySQL は、GROUP BY に列数が存在しないことを検出します。

解決策:

このエラーに対処するには、GROUP BY 句の SELECT 句にすべての列を含める必要があります。この場合、変更されたクエリは次のようになります:

SELECT `name`, `type`, `language`, `code` 
FROM `users` 
WHERE `verified` = '1' 
GROUP BY `name`, `type`, `language`, `code` 
ORDER BY `count` DESC LIMIT 0, 25

追加メモ:

  • MySQL のデフォルトの動作では、部分的な GROUP BY が許可されます。
  • 完全な GROUP BY を強制するには、次のように設定します。 @@sql_mode='ONLY_FULL_GROUP_BY'.

以上がMySQL が「isn't in GROUP BY」エラーをスローするのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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