(Слишком долго для простого комментария.)
COLLATION
имена начинаются с именем CHARACTER SET
. Эта резьба упомянула utf8
, utf8mb4
и latin1
CHARACTER SETs
. Вы должны использовать COLLATION
для данного CHARACTER SET
.
Первый выбрать a CHARACTER SET
. utf8
, utf8mb4
, и latin1
все ручки немецкие. Но если вы планируете обращаться с другими языками, подумайте:
latin
ограничен только западноевропейскими языками. Например, он не может обрабатывать греческий язык. (latin1 требуется 1 байт на символ.)
utf8mb4
охватывает все известные языки, с местом для большего количества. (до 4 байтов на символ) Это CHARACTER SET
не было доступно до версии 5.5.3.
utf8
является подмножеством utf8mb4
, в результате чего несколько китайских иероглифов и новый Emoji. (до 3 байтов на символ)
CHARACTER SET
обеспечивает кодировку символов для символов. COLLATION
говорит, как сравнивать две строки, такие как ss
и ß
следует рассматривать как равные.
После, набрав CHARACTER SET
, выберите COLLATION
. Или пусть id 'default': latin1_swedish_ci
/utf8_general_ci
/utf8mb4_general_ci
. Эти значения по умолчанию подходят для многоязычного использования; но это спорно. ss
! = ß
во всех этих значениях по умолчанию.
Идет вперед, «лучшее» решение - utf8mb4
и utf8mb4_unicode_520_ci
для получения общих многоязычных данных.
Если вы ориентируетесь только на немецкий, тогда вы может хотите рассмотреть ..._german2_ci
.Например:
utf8_german2_ci A=a=ª=À=Á=Á=Â=Ã=Å=à=á=á=â=ã=å=Ā=ā=Ą=ą < ae=Ä=Æ=ä=æ < az < B
utf8_unicode_520_ci A=a=ª=À=Á=Á=Â=Ã=Ä=Å=à=á=á=â=ã=ä=å=Ā=ā=Ą=ą < ae=Æ=æ < az < B
utf8_unicode_ci A=a=ª=À=Á=Á=Â=Ã=Ä=Å=à=á=á=â=ã=ä=å=Ā=ā=Ą=ą < ae < az < Æ=æ < B
utf8_general_ci A=a=À=Á=Á=Â=Ã=Ä=Å=à=á=á=â=ã=ä=å=Ā=ā=Ą=ą < Z < Æ=æ
(. Ditto для utf8mb4_...
) сортировки
Так что, если вы на самом деле все равно, как æ
сравнивает, вы должны быть разборчивы обобщению. (utf8 и utf8mb4 действуют одинаково.) More collation comparisions.
ue=Ü=ü
для ..._german2_ci
сопоставлений, но, возможно, нет других. Другие (в основном) относятся к U=u=Ü=ü
и оставляют ue
для сравнения как две буквы.
Добавьте предложение сопоставления в сравнение, что-то вроде 'WHERE firstname collate german_ci like ...'. – jarlh
Вы можете быть более конкретным? theres no 'german_ci'. когда я использую 'latin1_german2_ci', он говорит:' # 1253 - COLLATION 'latin1_german2_ci' недействителен для CHARACTER SET 'utf8''. Когда я пытаюсь использовать 'utf8_unicode_ci', я получаю тот же результат, что и в исходном сообщении – yangsunny
. Я не знаю ваших имен сортировки продукта dbms. Возможно, вы должны пометить используемые вами dbms, и вы получите ответ, который вам подходит. – jarlh