Å vs å не совпадает в запросе mysql — как сделать совпадение без учета регистра

У меня есть датский сайт, разработанный в PHP, я использую mysqli,

У меня есть слова типа Daugård и Århus в поле базы данных, называемые тегами.

Я хочу, чтобы оба значения были получены в результате выполнения запроса, как показано ниже.

Query : select * from table_name where tags like '%år%';
Expected result : Daugård and Århus both
Actual result : Daugård

Прямо сейчас выполняется сравнение с учетом регистра и возвращается только слово Даугард.
Я попытался изменить charset на utf8 динамически с помощью функции set_charset (‘utf8’), но это не сработало.

Сопоставление для 'tags' field is 'utf8_general_ci', table collation is 'utf8_general_ci' и мой database collation is 'latin1_swedish_ci',

Помогите мне, как мне этого добиться?

0

Решение

Чтобы избежать проблемы с сортировкой, используйте функцию преобразования регистра в тегах перед сравнением:

select * from table_name where lcase(tags) like '%år%';

Я мог бы что-то упустить, так как MySQL мне не знаком. Я знаю, что функция LOWER (теги) выполняет работу в Oracle, если искомый шаблон также находится в нижнем регистре.

1

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

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

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