Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để MySQL xử lý các chuỗi giống như SQLite, liên quan đến Unicode và đối chiếu?

MySQL muốn chuyển đổi chuỗi khi thực hiện INSERTSELECT . Việc chuyển đổi là giữa những gì bạn khai báo với khách hàng có và những gì cột được khai báo là đang lưu trữ.

Cách duy nhất để tránh điều đó là sử dụng VARBINARYBLOB thay vì VARCHARTEXT .

Việc sử dụng COLLATION utf8mb4_bin không tránh chuyển đổi thành / từ CHARACTER SET utf8mb4; nó chỉ nói rằng WHEREORDER BY nên so sánh các bit thay vì xử lý dấu và gấp chữ hoa.

Hãy nhớ rằng CHARACTER SET utf8mb4 là một cách để mã hóa văn bản; COLLATION utf8mb4_* là các quy tắc để so sánh các văn bản trong bảng mã đó. _bin là đơn giản.

UNIQUE liên quan đến việc so sánh để bình đẳng, do đó COLLATION . Trong hầu hết các đối chiếu utf8mb4, 3 (không có dấu cách) sẽ so sánh bằng nhau. utf8mb4_bin sẽ coi cả 3 là khác nhau. utf8mb4_hungarian_ci xử lý một =Một> öne.

Các khoảng trống ở cuối được kiểm soát bởi kiểu dữ liệu của cột (VARCHAR hoặc khác). Phiên bản mới nhất thậm chí còn có một cài đặt liên quan đến việc có xem xét dấu cách ở cuối hay không.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tùy chọn ON DELETE CASCADE không được tạo khi sử dụng tạo lược đồ ddl trên Mysql

  2. Trong khi nhập tệp mysqldump LỖI 1064 (42000) gần '■ /' tại dòng 1

  3. Tìm giá trị ÍT NHẤT / LỚN NHẤT từ các CỘT được kết hợp, bỏ qua 0 &NULL- MYSQL

  4. Cách sử dụng phương thức password_hash () của php ..?

  5. Các cột được mã hóa MySQL