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, так что, возможно, это то, что вы испытываете.

Другие вопросы по тегам