2012-03-01 2 views
3

EDIT: если такая сортировка не существует, я могу обойти ее, если MySQL имеет функцию, которая преобразует строки в эквиваленты ASCII, например. FUNC('Være')='Vaere' - может быть несколько таких функций, по одному для каждого алфавита, что было бы хлопотом, но приемлемым, если оно было бы эффективным.Сравнение сопоставлений MySQL, например. é и e равны?


Мне нужна сортировка MySQL5, которая будет сравнивать акцентированные символы как эквивалентные, независимо от акцентов. например «fêter» следует считать равным «feter», а «eł» должен соответствовать «el»

В идеале это не ограничивается односимвольными заменами, например. «For At Være Som Man Bør» следует считать равным «For At Vaere Som Man Bor». WHERE name LIKE '%ere%' также должен соответствовать этому.

Я вижу, есть закуски на испанский/польский/и т.д., но мне нужно один сверку, чтобы покрыть все латинские, как алфавитов (не арабские или азиатские и т.д.). Строки сохраняются как UTF-8.

Какую сортировку я должен использовать?

+1

Как насчет чувствительности к регистру, все в порядке, если это не чувствительно к регистру в сравнении? –

+0

Нечувствительный к регистру, по крайней мере пока. В идеале я мог бы выбрать это во время выполнения. – spraff

+0

Я не могу сейчас составить ответ (это немного сложная тема, и я каждый раз забываю о причудах и оговорках), но для любого, кто хочет копать, ответ здесь: http://dev.mysql.com/ док/RefMan/5,5/о/кодировки, юникод-sets.html –

ответ

1

Так как вы сказали, что вы используете символы utf8 набор, ответ на исходный вопрос «все, кроме utf8_bin».

Во всех этих сопоставлениях вы найдете, что 'e' = 'ê'.

Однако я не знаю никаких сопоставлений, где 'æ' = 'ae' or 'ø' = 'o'.

utf8_czech_ci 
utf8_danish_ci 
utf8_esperanto_ci 
utf8_estonian_ci 
utf8_general_ci 
utf8_hungarian_ci 
utf8_icelandic_ci 
utf8_latvian_ci 
utf8_lithuanian_ci 
utf8_persian_ci 
utf8_polish_ci 
utf8_roman_ci 
utf8_romanian_ci 
utf8_sinhala_ci 
utf8_slovak_ci 
utf8_slovenian_ci 
utf8_spanish_ci 
utf8_spanish2_ci 
utf8_swedish_ci 
utf8_turkish_ci 
utf8_unicode_ci