Samlinger . Du har to valgmuligheder, ikke tre:
utf8_bin behandler alle disse som forskellige :demandé og demande og Demandé .
utf8_..._ci (typisk utf8_general_ci eller utf8_unicode_ci ) behandler alle disse som det samme :demandé og demande og Demandé .
Hvis du kun ønsker følsomhed over for store og små bogstaver (demandé =demande , men ingen af dem matcher Demandé ), er du ude af held.
Hvis du kun ønsker accentfølsomhed (demandé =Demandé , men ingen af dem matcher demande ), er du ude af held.
Erklæring . Den bedste måde at gøre, hvad end du vælger:
CREATE TABLE (
name VARCHAR(...) CHARACTER SET utf8 COLLATE utf8_... NOT NULL,
...
PRIMARY KEY(name)
)
Skift ikke sortering med det samme . Dette vil ikke bruge indekset (det vil være langsomt), hvis sorteringen er anderledes i name :
WHERE name = ... COLLATE ...
BINÆR . datatyperne BINARY , VARBINARY og BLOB minder meget om CHAR , VARCHAR og TEXT med COLLATE ..._bin . Måske er den eneste forskel, at tekst vil blive tjekket for gyldig utf8-lagring i en VARCHAR ... COLLATE ..._bin , men det vil ikke blive kontrolleret, når du gemmer i VARBINARY... . Sammenligninger (WHERE , ORDER BY , etc) vil være det samme; det vil sige, bare sammenlign bitsene, lad være med at folde sagen eller fjerne accent osv.