sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man MySQL til at håndtere strenge som SQLite gør, med hensyn til Unicode og kollation?

MySQL ønsker at konvertere strenge ved INSERT og SELECT . Konverteringen er mellem det, du erklærer klienten at have og hvad kolonnen er erklæret til opbevaring.

Den eneste måde at undgå det på er med VARBINARY og BLOB i stedet for VARCHAR og TEXT .

Brugen af ​​COLLATION utf8mb4_bin undgår ikke konvertering til/fra CHARACTER SET utf8mb4; den siger blot at WHERE og ORDER BY bør sammenligne bitsene i stedet for at beskæftige sig med accenter og sagfoldning.

Husk at CHARACTER SET utf8mb4 er en måde at kode tekst på; COLLATION utf8mb4_* er regler for sammenligning af tekster i den kodning. _bin er enkeltsindet.

UNIQUE involverer sammenligning for lighed, derfor COLLATION . I de fleste utf8mb4-kollationer vil de 3 (uden mellemrum) sammenlignes. utf8mb4_bin vil behandle de 3 som forskellige. utf8mb4_hungarian_ci behandler one=One>öne.

De efterfølgende mellemrum styres af kolonnens datatype (VARCHAR eller andre). Den seneste version har endda en indstilling, der relaterer til, om man skal overveje efterfølgende mellemrum.



  1. Hvordan får man de generelt mest populære tags fra normaliserede tabeller?

  2. PostgreSQL:Vælg data med et like på tidsstempelfeltet

  3. SQL-tabel med listeindgang vs SQL-tabel med en række for hver post

  4. Hvordan beholder man specialtegn, når man kører ./mysqldump?