sql >> Databáze >  >> RDS >> Mysql

Jak zajistit, aby MySQL zpracovávalo řetězce jako SQLite, s ohledem na Unicode a řazení?

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.



  1. Automatické zvýšení SQL podle data a času

  2. Problémy s komunikací mezi dvěma kontejnery dokovacích stanic

  3. Jak uniknout jednoduché uvozovce v řetězcovém literálu pomocí MySQL z Javy

  4. složený (alfanumerický) primární klíč a automatický přírůstek