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
と比較するのは非常に合理的です。 。