Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak sprawić, by MySQL obsługiwał ciągi znaków, tak jak robi to SQLite, w odniesieniu do Unicode i sortowania?

MySQL chce konwertować ciągi znaków podczas wykonywania INSERT i SELECT . Konwersja odbywa się między tym, co deklarujesz klientowi mieć i co kolumna jest zadeklarowany do przechowywania.

Jedynym sposobem na uniknięcie tego jest użycie VARBINARY i BLOB zamiast VARCHAR i TEXT .

Użycie COLLATION utf8mb4_bin nie unika konwersji do/z CHARACTER SET utf8mb4; mówi tylko, że WHERE i ORDER BY powinien porównywać bity zamiast zajmować się akcentami i składaniem kopert.

Pamiętaj, że CHARACTER SET utf8mb4 to sposób na kodowanie tekstu; COLLATION utf8mb4_* to zasady porównywania tekstów w tym kodowaniu. _bin jest prosty.

UNIQUE obejmuje porównywanie pod kątem równości, stąd COLLATION . W większości zestawień utf8mb4 3 (bez spacji) będą porównywalne. utf8mb4_bin potraktuje 3 jako różne. utf8mb4_hungarian_ci traktuje one=One>öne.

Końcowe spacje są kontrolowane przez typ danych kolumny (VARCHAR lub inny). Najnowsza wersja ma nawet ustawienie określające, czy brać pod uwagę końcowe spacje.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Problemy z wykonaniem instrukcji usuwania MySQL w Javie

  2. Przechowywanie i wyświetlanie ciągu Unicode (हिन्दी) przy użyciu PHP i MySQL

  3. Wypełnianie JTree z bazy danych

  4. @Column(unique=true) nie działa

  5. Mierzenie rzeczywistego czasu zapytania MySQL