Оператор BINARY
преобразует следующую за ним строку в строку с двоичными
данными. Это простой способ обеспечить сравнение в столбце с учетом
регистра, даже если данный столбец не определен как BINARY
или BLOB
:
mysql> SELECT "a" = "A";
-> 1
mysql> SELECT BINARY "a" = "A";
-> 0
BINARY string
является сокращением для CAST(string AS BINARY)
.
See section 6.3.5 Функции приведения типов. Оператор BINARY
был введен в версии MySQL 3.23.0. Следует
учитывать, что при приведении индексированного столбца к типу BINARY
MySQL в некоторых случаях не сможет эффективно использовать индексы.
Для сравнения двоичных данных типа BLOB
без учета регистра данные с типом
BLOB
перед выполнением сравнения всегда можно конвертировать в верхний
регистр:
SELECT 'A' LIKE UPPER(blob_col) FROM table_name;
В скором времени мы планируем ввести преобразование между различными
кодировками, чтобы сделать сравнение строк еще более гибким.