У меня есть датский сайт, разработанный в 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'
,
Помогите мне, как мне этого добиться?
Чтобы избежать проблемы с сортировкой, используйте функцию преобразования регистра в тегах перед сравнением:
select * from table_name where lcase(tags) like '%år%';
Я мог бы что-то упустить, так как MySQL мне не знаком. Я знаю, что функция LOWER (теги) выполняет работу в Oracle, если искомый шаблон также находится в нижнем регистре.
Других решений пока нет …