Алексей Набоков Web — разработка, seo, программирование

23Авг/100

MySQL: регистрозависимое сравнение текстовых полей

Столкнулся с определенной фичей в MySQL, незнание которой ненадолго поставило в тупик, заставив выискивать ошибку.

Есть таблица с полем varchar и collation типа cp1251_general_cs (регистрозависимое)

CREATE TABLE `test_space` (

`id` INT(10) NOT NULL AUTO_INCREMENT,

`text_space` VARCHAR(255) NOT NULL COLLATE 'cp1251_general_cs',

PRIMARY KEY (`id`)

)

COLLATE='cp1251_general_cs'

ENGINE=MyISAM

Запросы

select * from test_space where `text_space`='text'

и

select * from test_space where `text_space`='text       '

возвращают один и тот же результат, т.е. MySQL при операции сравнения для регистрозависимых полей отбрасывает пробелы в конце строки.

И если, например, по этому полю есть UNIQUE индекс, попытка вставить строку 'text        ' в таблицу, где имеется строка с записью, 'text' даст ошибку "Duplicate entry...".

Комментарии (0) Пинги (0)

Пока нет комментариев.


Оставить комментарий

Введите сумму с картинки *

Trackbacks are disabled.