Brakuje ci punktu dotyczącego CHARACTER SET
i COLLATION
. CHARACTER SET
to zbiór różnych postaci. COLLATION
mówi, czy traktować znaki jako równe -- pomyśl A
i a
-- różne znaki, ale traktowane jako ORDER BY
i WHERE =
itp. jako takie same.
mysql> SELECT 'K'='K' COLLATE utf8_unicode_ci;
+-----------------------------------+
| 'K'='K' COLLATE utf8_unicode_ci |
+-----------------------------------+
| 1 |
+-----------------------------------+
Tak więc w utf8_unicode_ci (lub utf8mb4_unicode_ci) te dwa znaki są uważane za „równe”.
„Równe” to test dla UNIQUE
klawisze.
Ustaw COLLATION
za kolumnę do wszystkiego, co ma dla Ciebie sens.
- utf8mb4_unicode_ci dla dobrych porównań do „prawdziwego życia”, najwyraźniej włączając to. K=k=Ķ=ķ
- utf8mb4_unicode_ci dla bardziej prostych porównań. W szczególności żadne kombinacje dwuznakowe nie pasują do kodowania jednoznakowego. Występuje składanie kopert i usuwanie akcentów. K=k=Ķ=ķ
- utf8mb4_bin ślepo sprawdza bity. Bez składania spraw itp. K k Ķ ķ są nierówne.
utf8mb4_latvian_ci jest nieco inny:K=k, ale nie równy Ķ=ķ . Istnieją inne specjalistyczne zestawienia dla innych języków (głównie zachodnioeuropejskich).
Twój K
nazywa się „ŁACIŃSKA WIELKA LITERA K” NA PEŁNEJ SZEROKOŚCI, więc całkiem rozsądne jest porównanie z łacińskim K
.