これは通常、互換性のない照合の2つの文字列を比較するか、異なる照合のデータを組み合わせた列に選択しようとすることによって発生します。
句COLLATE
クエリで使用する照合を指定できます。
たとえば、次のWHERE
句は常にあなたが投稿したエラーを与えます:
WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs
解決策は、クエリ内の2つの列に共有照合を指定することです。 COLLATE
を使用する例を次に示します。 条項:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
もう1つのオプションは、BINARY
を使用することです。 演算子:
BINARY strは、CAST(str AS BINARY)の省略形です。
ソリューションは次のようになります:
SELECT * FROM table WHERE BINARY a = BINARY b;
または、
SELECT * FROM table ORDER BY BINARY a;