Это обычно вызвано сравнением двух строк несовместимого сопоставления или попыткой выбора данных различной сортировки в объединенный столбец.
В предложении COLLATE
вы можете указать сортировку, используемую в запросе .
Например, следующее предложение WHERE
всегда будет давать сообщение об ошибке:
WHERE 'A' COLLATE latin1_general_ci = 'A' COLLATE latin1_general_cs
Ваше решение должно указывать общую сортировку для двух столбцов в запросе , Вот пример, который использует предложение COLLATE
:
SELECT * FROM table ORDER BY key COLLATE latin1_general_ci;
Другой вариант заключается в использовании оператора BINARY
:
BINARY str является сокращением для CAST (str AS BINARY).
blockquote>Ваше решение может выглядеть примерно так:
SELECT * FROM table WHERE BINARY a = BINARY b;
или,
SELECT * FROM table ORDER BY BINARY a;