MySQL wil strings converteren bij INSERT
en SELECT
. De conversie is tussen wat u de klant . aangeeft te hebben en wat de kolom wordt verklaard om op te slaan.
De enige manier om dat te voorkomen is met VARBINARY
en BLOB
in plaats van VARCHAR
en TEXT
.
Het gebruik van COLLATION utf8mb4_bin
vermijdt conversie naar/van CHARACTER SET utf8mb4
. niet; er staat alleen dat WHERE
en ORDER BY
zou de bits moeten vergelijken in plaats van zich bezig te houden met accenten en case-folding.
Houd er rekening mee dat CHARACTER SET utf8mb4
is een manier om tekst te coderen; COLLATION utf8mb4_*
is regels voor het vergelijken van teksten in die codering. _bin
is simpel van geest.
UNIQUE
omvat vergelijken voor gelijkheid, vandaar COLLATION
. In de meeste utf8mb4-sorteringen zullen de 3 (zonder spaties) gelijk zijn. utf8mb4_bin
zal de 3 als verschillend behandelen. utf8mb4_hungarian_ci
behandelt one=One>öne.
De volgspaties worden bepaald door het datatype van de kolom (VARCHAR
of andere). De nieuwste versie heeft zelfs een instelling met betrekking tot het al dan niet overwegen van volgspaties.