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.