MySQL поиск не ascii charcter НЕ работает, как предполагалось с LIKE

В моей базе данных MySQL есть таблица с полем varchar, в котором есть сортировка utf8_general_ci. Моя проблема в том, что когда я делаю запрос, как

SELECT title FROM node WHERE title LIKE "%ñ%"

в PHP он возвращает все заголовки, в которых есть «n» и «ñ». Я попытался сделать тот же запрос с терминала в Linux, и я не получил никаких результатов. Я не знаю, из-за отсутствия поддержки юникода в терминале или нет.

Как я могу отфильтровать свой запрос для отображения результатов, которые содержат выражение с точными символами, которые я хочу? Это проблема передачи PHP в MySQL? У меня есть PHP 5.3 и MySQL 5.1.

PS:

я знаю

SELECT title FROM node WHERE title LIKE "%n%"

возвращает те же результаты (с «n» и «ñ»), что и запрос выше, я не против этого. Я просто хочу иметь возможность фильтровать выражения с соответствующими символами Юникода.

0

Решение

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

Попробуйте использовать binary оператор:

SELECT title FROM node WHERE title LIKE BINARY '%ñ%'
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector