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 サイトの他の関連記事を参照してください。