|
|
|
| Всем доброго времени суток. Имеется вот такой запрос для поиска:
"SELECT `id`,`name` FROM `list` WHERE `name` LIKE '%".$word."%'"
|
Вроде как LIKE и должен по умолчанию искать незавиимо от регистра, но проблема в том, что столбец `name` - BLOB, по этому (а может, и не по этому?) LIKE ищет точные соответствия. Пробовал UPPER/LOWER, это не помогает. Вообще в поля записан текст UTF-8, но почему-то после преобразования столбца в текстовые типы (text, varchar) utf8 скрипт выводит неизвестные символы :(
Вообще реально в данном случае сделать поиск регистронезависимым? | |
|
|
|
|
|
|
|
для: amigo63
(29.04.2009 в 13:05)
| | >Всем доброго времени суток. Имеется вот такой запрос для поиска:
>
"SELECT `id`,`name` FROM `list` WHERE `name` LIKE '%".$word."%'"
|
>Вроде как LIKE и должен по умолчанию искать незавиимо от регистра, но проблема в том, что столбец `name` - BLOB, по этому (а может, и не по этому?) LIKE ищет точные соответствия.
Поэтому. BLOB хранит байтовый поток. Понятие кодировок, заглавных/строчных букв, символов к нему неприменимо.
Вообще в поля записан текст UTF-8, но почему-то после преобразования столбца в текстовые типы (text, varchar) utf8 скрипт выводит неизвестные символы :(
Потому что для работы с текстом клиент должен корректно указывать кодировку, в которой он намерен получать данные.
>Вообще реально в данном случае сделать поиск регистронезависимым?
реально. | |
|
|
|
|
|
|
|
для: Trianon
(29.04.2009 в 14:23)
| | >Потому что для работы с текстом клиент должен корректно указывать кодировку, в которой он намерен получать данные.
Спасибо большое, напомнили про set names :) преобразовал столбец и дело пошло | |
|
|
|