sql >> Database >  >> RDS >> Mysql

Hoe MySQL strings te laten verwerken zoals SQLite dat doet, met betrekking tot Unicode en collatie?

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.



  1. Heroku Postgres:Te veel verbindingen. Hoe vernietig ik deze verbindingen?

  2. MySQL retourneert de eerste rij van een samengevoegde tabel

  3. SQL Server:is het mogelijk om tegelijkertijd in twee tabellen in te voegen?

  4. Hoe maak je een back-up en herstel je een database als een kopie op dezelfde server?