CHARACTER SETについてのポイントが欠けています およびCOLLATION 。 CHARACTER SET さまざまなキャラクターのコレクションです。 COLLATION 文字を同等に扱うかどうかを示します-Aと考えてください およびa -文字は異なりますが、ORDER BYで処理されます およびWHERE = 、などは同じです。
mysql> SELECT 'K'='K' COLLATE utf8_unicode_ci;
+-----------------------------------+
| 'K'='K' COLLATE utf8_unicode_ci |
+-----------------------------------+
| 1 |
+-----------------------------------+
したがって、utf8_unicode_ci(またはutf8mb4_unicode_ci)では、これら2つの文字は「等しい」と見なされます。
「等しい」はUNIQUEのテストです キー。
COLLATIONを設定します あなたにとって意味のあるものなら何でもコラムのために。
- utf8mb4_unicode_ci 明らかにこれを含む、良い「実生活」の比較のために。 K =k=Ķ=ķ
- utf8mb4_unicode_ci より単純な比較のために。特に、2文字の組み合わせが1文字のエンコーディングと一致することはありません。ケースの折り畳みとアクセントの剥ぎ取りは発生します。 K =k=Ķ=ķ
- utf8mb4_bin 盲目的にビットをチェックします。ケースの折り畳みなどはありません。KkĶķはすべて等しくありません。
utf8mb4_latvian_ciは少し異なります:K =kですが、Ķ=ķと等しくありません。他の言語(主に西ヨーロッパ)のための他の特殊な照合があります。
あなたのK は「FULLWIDTHLATINCAPITALLETTER K」と呼ばれるため、ラテン語のKと比較するのは非常に合理的です。 。