Du missar poängen med CHARACTER SET
och COLLATION
. En CHARACTER SET
är en samling av olika karaktärer. En COLLATION
säger om tecknen ska behandlas som lika -- tänk på A
och a
-- olika tecken, men behandlas för ORDER BY
och WHERE =
, etc som är samma.
mysql> SELECT 'K'='K' COLLATE utf8_unicode_ci;
+-----------------------------------+
| 'K'='K' COLLATE utf8_unicode_ci |
+-----------------------------------+
| 1 |
+-----------------------------------+
Så i utf8_unicode_ci (eller utf8mb4_unicode_ci) anses dessa två tecken vara "lika".
"Equal" är testet för UNIQUE
nycklar.
Ställ in COLLATION
för kolumnen till vad som är vettigt för dig.
- utf8mb4_unicode_ci för bra jämförelser i "verkliga livet", uppenbarligen inklusive denna. K=k=Ķ=ķ
- utf8mb4_unicode_ci för mer enkla jämförelser. I synnerhet inga 2-teckenkombinationer matchar 1-teckenkodningar. Fallvikning och accentstrippning förekommer. K=k=Ķ=ķ
- utf8mb4_bin kollar blint bitarna. Ingen fallvikning, etc. K k Ķ ķ är alla olika.
utf8mb4_latvian_ci är lite annorlunda:K=k men inte lika med Ķ=ķ . Det finns andra specialiserade sammanställningar för andra språk (främst västeuropeiska).
Din K
kallas "FULLWIDTH LATIN CAPITAL LETTER K", så det är ganska rimligt att det jämförs med latinska K
.