MySQL の「不正な照合順序の組み合わせ」エラーのトラブルシューティング
ストアド プロシージャの実行中に MySQL で「不正な照合順序の組み合わせ」エラーが発生した場合根底にあるものを掘り下げることが賢明です
照合順序は、MySQL で重要な役割を果たし、文字セットとソート ルールを決定します。テーブルと WHERE 句で参照される列の間の照合順序が一致しないと、このエラーが発生する可能性があります。
この問題を解決するには、比較に含まれる両方の列に共有照合順序を指定します。 COLLATE 句を使用すると、特定の式のデフォルトの照合順序をオーバーライドできます。例:
WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs
このクエリでも、異なる照合順序で文字列を比較するため、エラーが発生します。代わりに、共有照合順序を明示的に指定する必要があります:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
または、BINARY 演算子を利用して、照合順序を無視してバイナリ比較を強制することもできます:
SELECT * FROM table WHERE BINARY a = BINARY b;
SELECT * FROM table ORDER BY BINARY a;
BINARY 演算子の場合のように、比較のために列をキャストすると、インデックス作成のパフォーマンスに影響を与える可能性があります。 MySQL 照合順序の詳細については、eggyal の包括的な回答を参照してください。
以上がMySQL の「不正な照合順序の組み合わせ」エラーを解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。