MySQL chce konvertovat řetězce při provádění INSERT
a SELECT
. Konverze je mezi tím, co deklarujete jako klient mít a co sloupec je deklarováno jako úložiště.
Jediný způsob, jak se tomu vyhnout, je pomocí VARBINARY
a BLOB
místo VARCHAR
a TEXT
.
Použití COLLATION utf8mb4_bin
nevyhýbá se převodu do/z CHARACTER SET utf8mb4
; pouze říká, že WHERE
a ORDER BY
měli porovnávat bity místo toho, aby se zabývali akcenty a skládáním pouzdra.
Mějte na paměti, že CHARACTER SET utf8mb4
je způsob kódování textu; COLLATION utf8mb4_*
jsou pravidla pro porovnávání textů v tomto kódování. _bin
je prostoduchý.
UNIQUE
zahrnuje srovnání pro rovnost, proto COLLATION
. Ve většině porovnávání utf8mb4 se 3 (bez mezer) budou porovnávat stejně. utf8mb4_bin
bude považovat 3 za odlišné. utf8mb4_hungarian_ci
léčí jeden=Jeden>öne.
Koncové mezery jsou řízeny datovým typem sloupce (VARCHAR
nebo jiný). Nejnovější verze má dokonce nastavení týkající se toho, zda uvažovat o koncových mezerách.