Sie vermissen den Punkt über CHARACTER SET
und COLLATION
. Ein CHARACTER SET
ist eine Sammlung verschiedener Charaktere. Eine COLLATION
gibt an, ob die Zeichen als gleich behandelt werden sollen – denken Sie an A
und a
-- andere Zeichen, aber für ORDER BY
behandelt und WHERE =
, usw. als gleich.
mysql> SELECT 'K'='K' COLLATE utf8_unicode_ci;
+-----------------------------------+
| 'K'='K' COLLATE utf8_unicode_ci |
+-----------------------------------+
| 1 |
+-----------------------------------+
In utf8_unicode_ci (oder utf8mb4_unicode_ci) werden diese beiden Zeichen also als "gleich" betrachtet.
"Gleich" ist der Test für UNIQUE
Tasten.
Legen Sie die COLLATION
fest für die Spalte, was für Sie sinnvoll ist.
- utf8mb4_unicode_ci für gute Vergleiche im "echten Leben", einschließlich dieses anscheinend. K=k=Ķ=ķ
- utf8mb4_unicode_ci für einfachere Vergleiche. Insbesondere stimmen keine 2-Zeichen-Kombinationen mit 1-Zeichen-Kodierungen überein. Fallfaltung und Akzententfernung treten auf. K=k=Ķ=ķ
- utf8mb4_bin prüft die Bits blind. Keine Fallfaltung usw. K k Ķ ķ sind alle ungleich.
utf8mb4_latvian_ci ist etwas anders:K=k aber nicht gleich Ķ=ķ . Es gibt andere spezialisierte Sortierungen für andere Sprachen (hauptsächlich westeuropäisch).
Ihr K
heißt "VOLLWEITER LATEINISCHER GROSSBUCHSTABE K", daher ist es ziemlich vernünftig, dass er mit dem lateinischen K
verglichen wird .