MySQL Swedish Collation и 'é'
У меня есть база данных MySQL, которая хранит шведские символы (но не часть PK) и делает выборку по этим символам.
У меня нет большого опыта работы с подобными вещами, но я ранее установил для сортировки значение "utf16_swedish_ci", которое, кажется, долго работало нормально и могло различать похожие символы (например, против и é vs e) в избранных утверждениях.
В последнее время, однако, я заметил, что использование этого сопоставления, кажется, всегда рассматривает é и e одно и то же (хотя, похоже, оно отлично различает все другие подобные шведские символы).
Что-то изменилось в новых версиях MySQL? Или так было всегда, и я просто не замечал этого до сих пор? Какой порядок сортировки я должен использовать, чтобы однозначно идентифицировать все шведские символы, у которых не будет никаких странных побочных эффектов?
Заранее спасибо!
2 ответа
В большинстве (в том числе swedish_ci
) сопоставления utf8 или utf8mb4 E
знак равноé
, Исключения: _bin
а также _icelandic_ci
, См. http://mysql.rjweb.org/utf8_collations.html и http://mysql.rjweb.org/utf8mb4_collations.html
Обратите внимание, что большинство сопоставлений заканчиваются _ci
, что подразумевает как складывание корпуса, так и (в основном) игнорирование акцентов.
Не используйте utf16 или utf32; используйте только utf8/utf8mb4.
В MySQL нет сопоставлений, которые по-разному трактуют регистр и акцент.
Единственное несовместимое изменение в сопоставлениях было в 5.0 с немецким ß
, Это было фиаско; MySQL никогда не изменит параметры сортировки, хотя может добавить новые параметры сортировки.
å
, ä
а также ö
являются частью родного шведского алфавита и не требуют особого отношения. Тем не мение, é
не является родным и опирается на правила акцента для сопоставления.
Насколько мне известно, чтобы получить чувствительный к акценту сопоставления в MySQL
необходимо использовать одно из двоичных сопоставлений - например, utf16_bin
, который, к сожалению, также чувствителен к регистру.
Какая версия MySQL
вы используете, и вы недавно обновились до более новой версии? Если да, то откат к предыдущей версии может решить ваши проблемы с сопоставлением. Я знаю, что были внесены некоторые изменения в параметры сортировки, включенные в версию 8.xx, так что, возможно, это то, что вы испытываете.