Collaties . Je hebt twee keuzes, niet drie:
utf8_bin
behandelt deze allemaal als verschillend :demandé
en demande
en Demandé
.
utf8_..._ci
(meestal utf8_general_ci
of utf8_unicode_ci
) behandelt deze allemaal als hetzelfde :demandé
en demande
en Demandé
.
Als u alleen hoofdlettergevoeligheid wilt (demandé
=demande
, maar geen van beide komt overeen met Demandé
), heb je pech.
Als je alleen accentgevoeligheid wilt (demandé
=Demandé
, maar geen van beide komt overeen met demande
), heb je pech.
Verklaring . De beste manier om te doen wat je kiest:
CREATE TABLE (
name VARCHAR(...) CHARACTER SET utf8 COLLATE utf8_... NOT NULL,
...
PRIMARY KEY(name)
)
Verander de sortering niet meteen . Dit zal de index niet gebruiken (dat wil zeggen, zal traag zijn) als de sortering anders is in name
:
WHERE name = ... COLLATE ...
BINAIR . De datatypes BINARY
, VARBINARY
en BLOB
lijken erg op CHAR
, VARCHAR
, en TEXT
met COLLATE ..._bin
. Misschien is het enige verschil dat tekst wordt gecontroleerd op geldige utf8-opslag in een VARCHAR ... COLLATE ..._bin
, maar het wordt niet gecontroleerd bij het opslaan in VARBINARY...
. Vergelijkingen (WHERE
, ORDER BY
, enz.) zullen hetzelfde zijn; dat wil zeggen, vergelijk gewoon de bits, doe geen case-folding of accentstripping, enz.