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 .