Я заметил проблему с "неанглийскими" (польскими) символами при использовании MySQL.
запрос "выберите 'abcde'='ąbćdę'" возвращает "1" и строки не равны...
не могли бы вы помочь мне ? :) спасибо!!!
Я заметил проблему с "неанглийскими" (польскими) символами при использовании MySQL.
запрос "выберите 'abcde'='ąbćdę'" возвращает "1" и строки не равны...
не могли бы вы помочь мне ? :) спасибо!!!
Для utf8_general_ci они равны (за исключением ł, который MySQL не считает ошибкой), а начиная с версии 5.6 вы также можете использовать utf8_unicode_520_ci, который правильно обрабатывает все польские символы. Используйте utf8_polish_ci, чтобы рассматривать символы с ударением и символы без ударения как разные.
select 'abcde'='ąbćdę' COLLATE utf8_polish_ci
>> 0
Демонстрация «не ошибка»
select 'abcde'='ąbćdę' COLLATE utf8_general_ci
>> 1
select 'abcdel'='ąbćdęł' COLLATE utf8_general_ci
>> 0
См. отчет об ошибке здесь: http://bugs.mysql.com/bug.php?id=9604
ş
и s
обрабатываются как идентичные значения. Я уже пробовал несколько разных сортировок, и ни одна из них не работает. Есть идеи? здесь мой вопрос
- person oldboy; 09.11.2018
Вы можете заменить Ł на L и ł на l в запросе MYSQL, например:
SELECT REPLACE(REPLACE('abcdel', 'Ł', 'L'), 'ł', 'l') = REPLACE(REPLACE('ąbćdęł', 'Ł', 'L'), 'ł', 'l') COLLATE utf8_general_ci
>> 1
и с этого момента все диакритические буквы равны их недиакритическим эквивалентам.