ホームページ > データベース > mysql チュートリアル > MySQL の「GROUP 列の混合」エラー (エラー #1140) を解決する方法は?

MySQL の「GROUP 列の混合」エラー (エラー #1140) を解決する方法は?

Linda Hamilton
リリース: 2024-12-27 16:13:09
オリジナル
895 人が閲覧しました

How to Solve MySQL's

MySQL の「GROUP カラムの混合」エラーの解決

「GROUP カラムの混合」を示す MySQL の #1140 エラークエリの SELECT 句に非集計 (非 GROUP) 列が含まれている場合に発生します。 GROUP BY 句のない集計列も含まれます。この問題に対処するには、主に 2 つのアプローチがあります。

1. ONLY_FULL_GROUP_BY の無効化:

MySQL には ONLY_FULL_GROUP_BY という構成設定があり、デフォルトは ON です。この設定では、厳密な GROUP BY セマンティクスが強制され、SELECT 句内のすべての非集計列が GROUP BY リストに含まれることが要求されます。この設定を無効にするには、次のクエリを実行します。

SET SESSION ONLY_FULL_GROUP_BY = OFF;
ログイン後にコピー

ONLY_FULL_GROUP_BY を無効にして、クエリを変更せずに実行できるようにします。

2. GROUP BY 列の追加:

または、選択したすべてのフィールドを GROUP BY 句に含めるようにクエリを変更することもできます。これにより、すべての非集計列が「グループ化」され、結果セットが厳密な GROUP BY セマンティクスを満たすことが保証されます。

SELECT COUNT(node.nid), 
       node.nid AS nid, 
       node_data_field_update_date.field_update_date_value AS node_data_field_update_date_field_update_date_value
FROM node node
LEFT JOIN content_type_update node_data_field_update_date ON node.vid = node_data_field_update_date.vid
WHERE node.type IN ('update')
GROUP BY node.nid, node_data_field_update_date.field_update_date_value
ORDER BY node_data_field_update_date_field_update_date_value DESC;
ログイン後にコピー

クエリを変更して GROUP BY 句を含めると、結果を明示的にグループ化することで問題が解決します。すべての非集計列に設定されます。

以上がMySQL の「GROUP 列の混合」エラー (エラー #1140) を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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