Ả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.