MySQL найти и заменить строки - PullRequest
0 голосов
/ 09 октября 2011

У меня есть процедура, которая просматривает базу данных и возвращает результаты на основе условия, переданного в качестве аргумента. Например;

CALL myProcs('Björn'); 

Этот запрос вернет всех пользователей, в именах которых есть «björn». Однако я хотел бы получить те же результаты, когда параметр передан как 'bjorn' (обратите внимание на 'ö' и 'o'). Если бы это был только один персонаж, то проблем не было бы, но я бы хотел добиться того же:

i => ı, ö => o, ü => u, ë => e etc etc...

Какой самый простой подход для достижения этой цели? Я использую php 5+ и Mysql.

Ответы [ 3 ]

2 голосов
/ 09 октября 2011

Вы можете установить конкретное сопоставление для таблиц своей базы данных (http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html), которое позволит правильно сравнивать игнорируемые символы. Например:

Ä = A ; Ö = O ; Ü = U

utf8_general_ci и utf8_unicode_ci оба имеют желаемый эффект.

Приветствия

2 голосов
/ 09 октября 2011

В основном, пока вы читаете значения параметров.Используйте их как "UTF-8" Формат.

См. Советы по поддержке UTF-8 в ваших приложениях PHP5

2 голосов
/ 09 октября 2011

Посмотрите на этот URL:

Я думаю, что это лучший способ, если вы не хотите использовать массив для замены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...