Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách tìm kiếm có phân biệt dấu (accent sensitive) trong MySQL

Sử dụng collation utf8_bin (hoặc utf8mb4_bin) cho cột hoặc trong truy vấn.

Tạo bảng với collation phân biệt dấu:

CREATE TABLE AccentSearchDemo (
    Id VARCHAR(100) COLLATE utf8_bin
);

Khi so sánh, 'John123' khác 'Jöhn123' (nếu có dấu). Collation _bin so sánh byte-by-byte, phân biệt chữ hoa/thường và dấu.

Để tìm kiếm một lần (ad-hoc):

SELECT * FROM bảng WHERE cột COLLATE utf8_bin = 'giá_trị';

Lưu ý: utf8_bin chỉ hỗ trợ BMP (3 byte), khuyến nghị dùng utf8mb4_bin cho đầy đủ Unicode (emoji, chữ hán...).