Ảnh ghép . Bạn có hai lựa chọn, không phải ba:
utf8_bin coi tất cả những thứ này là khác nhau :demandé và demandé và Demandé .
utf8_..._ci (thường là utf8_general_ci hoặc utf8_unicode_ci ) coi tất cả những điều này là giống nhau :demandé và demandé và Demandé .
Nếu bạn chỉ muốn phân biệt chữ hoa chữ thường (demandé =demandé , nhưng không khớp với Demandé ), bạn không gặp may.
Nếu bạn chỉ muốn có độ nhạy trọng âm (demandé =Demandé , nhưng không khớp với demandé ), bạn không gặp may.
Tuyên bố . Cách tốt nhất để làm bất cứ điều gì bạn chọn:
CREATE TABLE (
name VARCHAR(...) CHARACTER SET utf8 COLLATE utf8_... NOT NULL,
...
PRIMARY KEY(name)
)
Không nhanh chóng thay đổi đối chiếu . Điều này sẽ không sử dụng chỉ mục (nghĩa là sẽ chậm) nếu đối chiếu khác nhau trong name :
WHERE name = ... COLLATE ...
BINARY . Các kiểu dữ liệu BINARY , VARBINARY và BLOB rất giống CHAR , VARCHAR và TEXT với COLLATE ..._bin . Có lẽ sự khác biệt duy nhất là văn bản sẽ được kiểm tra xem utf8 hợp lệ được lưu trữ trong VARCHAR ... COLLATE ..._bin , nhưng nó sẽ không được kiểm tra khi lưu trữ vào VARBINARY... . So sánh (WHERE , ORDER BY , v.v.) sẽ giống nhau; nghĩa là, chỉ cần so sánh các bit, không gấp chữ hoa chữ thường hoặc tước dấu, v.v.