照合 。 3つではなく2つの選択肢があります:
utf8_bin
これらすべてを異なるとして扱います :demandé
およびdemande
およびDemandé
。
utf8_..._ci
(通常はutf8_general_ci
またはutf8_unicode_ci
)これらすべてを同じとして扱います :demandé
およびdemande
およびDemandé
。
大文字と小文字の区別のみが必要な場合(demandé
=demande
、ただしどちらもDemandé
と一致しません )、あなたは運が悪いです。
アクセント感度のみが必要な場合(demandé
=Demandé
、ただしどちらもdemande
と一致しません )、あなたは運が悪いです。
宣言 。選んだことを何でもするための最良の方法:
CREATE TABLE (
name VARCHAR(...) CHARACTER SET utf8 COLLATE utf8_... NOT NULL,
...
PRIMARY KEY(name)
)
その場で照合を変更しないでください 。 name
で照合が異なる場合、これはインデックスを使用しません(つまり、遅くなります)。 :
WHERE name = ... COLLATE ...
バイナリ 。 データ型 BINARY
、VARBINARY
およびBLOB
CHAR
と非常によく似ています 、VARCHAR
、およびTEXT
COLLATE ..._bin
を使用 。おそらく唯一の違いは、テキストがVARCHAR ... COLLATE ..._bin
に格納されている有効なutf8についてチェックされることです。 、ただし、VARBINARY...
に保存する場合はチェックされません。 。 比較 (WHERE
、ORDER BY
、など)は同じになります。つまり、ビットを比較するだけで、大文字小文字の区別やアクセントの削除などは行わないでください。