denis_druid
@denis_druid

Как правильно сделать LIKE запрос?

Здравствуйте.
У меня такая ситуация:
В БД записи, часть из них в ASCII, часть в UTF-8 (если кириллица)
Из базы данных выбираются данные по запросу.
Запрос в ASCII.
Так вот, проблема в том, что при запросе LIKE "%bat%". Он выводит корректно все записи из БД, содержащие "bat".
Но при запросе LIKE "%bat 1%" он выводит только записи в ASCII и игнорирует записи UTF-8.
Таблица и поля в utf8_general_ci
Полагаю, что проблема именно в цифре на конце запроса, т.к. запрос LIKE "%bat bat%" работает нормально.
Не могу понять почему. Подскажите.
Запрос самый обычный:
SELECT * FROM `my_table` WHERE `name` LIKE '%bat 1%'
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
в целом мне видется куча возможных проблем, основная, конечно же, в том что вы не получите нормального ответа от сервера, если у вас мешанина из разных кодировок в поле где 1 кодировка. Так же неизвестно какая кодировка установлена для соединения. ЕМНИП пробелы могут быть разные, особенно для utf кодировок, так что на самом простом варианте у вас все посыпется(точнее уже). Имхо проще все отконвертить в утф 1 раз и настроить нормальное сохранение(например вставив iconv в 3-4 места в коде), чем продолжать колоться, но жрать кактус.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы