Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara membuat MySQL menangani string seperti yang dilakukan SQLite, sehubungan dengan Unicode dan collation?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DELETE FROM `table` AS `alias` ... WHERE `alias`.`column` ... mengapa sintaks error?

  2. SELECT / GROUP BY - urutan nilai

  3. Kunci asing non-primer di Django

  4. Data karakter tidak lewat dari php ke jquery

  5. Kueri Jumlah MYSQL dengan Kondisi JIKA