MySQL の「不正な照合順序の混在」エラーのトラブルシューティング
MySQL で「不正な照合順序の混在」エラーが発生した場合、多くの場合、次のようなメッセージが表示されます。文字列を比較または結合する際の照合順序の非互換性。この問題は、異なる文字セットと照合規則を持つデータが混在している場合に発生し、エラーが発生します。
この問題を解決するには、比較または選択する列に共有照合順序を指定する必要があります。これは、クエリ内で使用する照合順序を指定できる COLLATE 句を使用して実現できます。
たとえば、特定のシナリオでエラーを解決するには、次のクエリを使用できます。
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
このクエリは、キー列が latin1_general_ci 照合順序を使用して並べ替えられ、 table.
もう 1 つのオプションは、比較前に文字列をバイナリ形式にキャストする BINARY 演算子を使用することです。これは CAST(str AS BINARY) の短縮形であり、次のように使用できます:
SELECT * FROM table WHERE BINARY a = BINARY b;
値をバイナリにキャストすることにより、照合規則の違いは無視され、正しい比較が可能になります。
値をバイナリにキャストすると、それらの列のインデックスが無視される可能性があることに注意することが重要です。詳細については、この特定の問題に関してeggyalによって提供された強く推奨される回答を参照してください。
以上がMySQL の「不正な照合順序の組み合わせ」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。