MySQL における不正な照合順序の組み合わせ: 解決方法の詳細ガイド
複数のテーブルを含むクエリを操作しているときに、次のエラーが発生する場合があります「照合順序が不正に混在しています。」この問題は、クエリに含まれるテーブルと列で使用されている文字セットと照合順序が一致しない場合に発生します。
このエラーを解決するには、不一致の原因となっている特定の列を特定し、それらの照合順序が一致するように変更する必要があります。残りのテーブル。これはステップバイステップのガイドです:
不一致の列の特定:
SELECT table_schema, table_name, column_name, character_set_name, collation_name FROM information_schema.columns WHERE collation_name = 'latin1_general_ci' ORDER BY table_schema, table_name, ordinal_position;
このクエリは、 'latin1_general_ci' 照合順序。
照合順序の変換:
不一致の列を特定したら、ALTER TABLE を使用して、残りのテーブルと一致するようにその照合順序を変換できます。指示。たとえば、「users」テーブルの「username」列を「latin1_swedish_ci」に変換するには、次のコマンドを使用します。
ALTER TABLE users CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';
注:照合を避けるために、主キー列は関連テーブルの外部キー列と一致する必要がありますエラー。
クエリの例:
照合の問題が解決された元のクエリの改訂版を次に示します:
SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount FROM ratings WHERE month='Aug' AND username IN (SELECT username FROM users WHERE gender=1) GROUP BY username HAVING TheCount > 4 ORDER BY TheAverage DESC, TheCount DESC;
次のようにします手順を実行すると、「不正な照合順序の組み合わせ」エラーを解決し、一貫した文字セットとクエリが正しく動作することを確認できます。照合順序。
以上がMySQL の「不正な照合順序の組み合わせ」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。