Во-первых, с BLOB не будут правильно работать строковые функции. Во-вторых перестанет работать механизм смены кодировки (подробнее об этом механизме я напишу позже).
Правильным же решением этой задачи является использование COLLATION. Слово COLLATION переводится как сличение, то есть задаёт правила сравнивания строк.
Пример:
CREATE TABLE `users` (
`username` text NOT NULL,
`host` text NOT NULL,
`password` text NOT NULL,
`email` text ,
`uniqueid` text ,
`datereg` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = MyISAM
DEFAULT CHARACTER SET UTF8 COLLATE UTF8_BIN;
* This source code was highlighted with Source Code Highlighter.
В данном примере для всех строк в таблице задаётся кодировка UTF-8 и задаётся правило регистрозависимого сравнения.
Заметки:
- Команда show collation; выводит список всех поддерживаемых сличений и их параметры.
- Наличие у сличения окончания _ci (например, utf8_general_ci) указывает, что оно регистронезависимо (case insensitive). Окончание _bin указывает, что сличение регистрозависимо (сравнивается в двоичном формате).
- Подробнее можно почитать тут: link
- Примеры использования:
Комментариев нет:
Отправить комментарий