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.