MySQL ingin mengonversi string saat melakukan INSERT
dan SELECT
. Konversi adalah antara apa yang Anda nyatakan sebagai klien untuk memiliki dan apa kolom dideklarasikan untuk disimpan.
Satu-satunya cara untuk menghindarinya adalah dengan VARBINARY
dan BLOB
bukannya VARCHAR
dan TEXT
.
Penggunaan COLLATION utf8mb4_bin
tidak menghindari konversi ke/dari CHARACTER SET utf8mb4
; itu hanya mengatakan bahwa WHERE
dan ORDER BY
harus membandingkan bit alih-alih berurusan dengan aksen dan pelipatan huruf.
Ingatlah bahwa CHARACTER SET utf8mb4
adalah cara untuk mengkodekan teks; COLLATION utf8mb4_*
adalah aturan untuk membandingkan teks dalam pengkodean itu. _bin
berpikiran sederhana.
UNIQUE
melibatkan membandingkan kesetaraan, maka COLLATION
. Di sebagian besar susunan utf8mb4, 3 (tanpa spasi) akan sebanding. utf8mb4_bin
akan memperlakukan 3 sebagai berbeda. utf8mb4_hungarian_ci
memperlakukan satu=Satu>öne.
Spasi tambahan dikendalikan oleh tipe data kolom (VARCHAR
atau yang lainnya). Versi terbaru bahkan memiliki pengaturan yang berkaitan dengan apakah akan mempertimbangkan spasi tambahan.