Задать вопрос
@mes01

Как реализовать регистронезависимый поиск в MySQL?

В общем не знаю как сделать регистронезависимый поиск в MySQL

Запрос выглядит у меня так:
SELECT * FROM items WHERE (item_name LIKE '%".$v."%' OR item_description LIKE '%$v%' OR item_keywords LIKE '%$v%') ORDER BY item_id DESC


В базе есть запись "Блокнот"
При запросе с условием $v=блокнот получаем нулевой результат, а если условие $v=Блокнот то запись находится

496eed44d2dc45f2a3feba901776406e.png44aab336951c4689b62786bf9617ad95.png330f2da7c49149e2bac64b99c1f0a752.pnge1ec14e8cb1b41feabf26a84dad2f685.png

Вопрос: Как сделать так что бы при запросе блоКноТ, mysql возвращал не пустой результат?
  • Вопрос задан
  • 5863 просмотра
Подписаться 1 Оценить Комментировать
Ответ пользователя Игорь К ответам на вопрос (3)
@hurgadan
операторы = и like сами по себе к регистру не имеют отношения. Это зависит от того, какой колейшен указан для поля. Если вы используете кодировку UTF8, то к примеру это может быть:
xxx_bin
xxx_unicode_ci
xxx_genereal_ci
Пускай речь идет о UTF8.
При использовании uft8_general_ci буквы е, ё, Е и Ё - это одно и тоже.
utf8_unicode_ci - буквы е и ё - это разные буквы, но нет различный в строчных и заглавных. Кроме того для некоторых языков, поддерживаются expansions, например в немецком ss тоже самое что ß.

подробно тут: dev.mysql.com/doc/refman/5.0/en/charset-unicode-se...
Ответ написан
Комментировать