ホームページ > データベース > mysql チュートリアル > MySQL が「main.users.type」をスローするのはなぜ GROUP BY エラーではないのですか?

MySQL が「main.users.type」をスローするのはなぜ GROUP BY エラーではないのですか?

Patricia Arquette
リリース: 2024-12-08 00:20:15
オリジナル
602 人が閲覧しました

Why is MySQL Throwing a 'main.users.type' Isn't in GROUP BY Error?

MySQL エラー: 'main.users.type' は GROUP BY にありません

phpMyAdmin で発生したエラー メッセージは、次のことを示しています。の GROUP BY 句に列 (この場合は型) がありません。 query.

理由:

MySQL では、集計関数 (COUNT、SUM など) ではない SELECT 句のすべての列が 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 ではデフォルトで部分的なグループが許可されており、予期しない結果が生じる可能性があります。

一貫性を確保するには、@@sql_mode を 'ONLY_FULL_GROUP_BY' に設定できます。

SET @@sql_mode='ONLY_FULL_GROUP_BY';
ログイン後にコピー

Withこの設定では、部分的な GROUP BY クエリはエラーとなり、必要な列をすべてクエリに含める必要があります。条項。

以上がMySQL が「main.users.type」をスローするのはなぜ GROUP BY エラーではないのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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