По умолчанию поиск в MySQL является
независимым от регистра символов
(хотя существуют некоторые
кодировки, которые всегда
чувствительны к регистру, такие
как czech). Это означает,
что при поиске с помощью col_name
LIKE 'a%' будут выданы все
значения столбца, начинающиеся на A
или a. Если необходимо выполнить
тот же поиск с учетом регистра, для
проверки префикса следует
использовать что-то вроде
INSTR(col_name, "A")=1 или
STRCMP(col_name, "A") = 0, если
значение в столбце точно равно
A.
Простые операции сравнения
(>=, >, =, <, <=,
сортировка и группировка)
основываются на "сорте" каждого
символа. Символы одного сорта
(такие как E, e и
E) обрабатываются как
одинаковые символы!
В старых версиях MySQL сравнения по
LIKE выполнялись над
символами, переведенными в верхний
регистр (E == e, но E
<> E). В новых версиях MySQL
LIKE работает точно так же,
как другие операторы сравнения.
Если необходимо, чтобы столбец
всегда обрабатывался в с учетом
регистра, объявите его с типом
BINARY (see Раздел 6.5.3, «Синтаксис оператора CREATE TABLE»).
Если вы используете китайские
данные в так называемой кодировке
big5, то имеет смысл
объявить все символьные столбцы
как BINARY. Сортировка
таких столбцов будет работать,
поскольку порядок сортировки
символов в кодировке big5
основывается на порядке кодов
ASCII.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
