照合 。 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 、など)は同じになります。つまり、ビットを比較するだけで、大文字小文字の区別やアクセントの削除などは行わないでください。