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

Tìm kiếm chuỗi chính xác (case-sensitive) trong cột MySQL

Để tìm kiếm chuỗi chính xác phân biệt chữ hoa/thường (case-sensitive) trong MySQL, bạn dùng từ khóa BINARY trước tên cột trong mệnh đề WHERE ... LIKE.

Ví dụ minh họa

Tạo bảng:

mysql> create table DemoTable( 
    Name varchar(20) 
);

Chèn dữ liệu (có 'John', 'JOHN', 'Adam', 'ADAM'):

mysql> insert into DemoTable values('Chris');
mysql> insert into DemoTable values('John');
mysql> insert into DemoTable values('Adam');
mysql> insert into DemoTable values('JOHN');
mysql> insert into DemoTable values('ADAM');

Hiển thị dữ liệu:

mysql> select * from DemoTable;

Kết quả:

+-------+
| Name  |
+-------+
| Chris |
| John  |
| Adam  |
| JOHN  |
| ADAM  |
+-------+

Truy vấn tìm chính xác 'JOHN' (viết hoa)

mysql> select * from DemoTable where binary Name LIKE '%JOHN%';

Kết quả:

+------+
| Name |
+------+
| JOHN |
+------+

Giải thích:

  • BINARY: Ép so sánh nhị phân (binary comparison), phân biệt chữ hoa/thường
  • Không dùng BINARY: WHERE Name LIKE '%JOHN%' sẽ khớp cả 'John', 'JOHN', 'john' (case-insensitive, mặc định collation)
  • %JOHN%: Wildcard % khớp 0 hoặc nhiều ký tự trước/sau

Cách khác: Dùng COLLATE utf8mb4_bin hoặc COLLATE latin1_general_cs (case-sensitive collation) cho cột hoặc trong truy vấn: WHERE Name COLLATE utf8mb4_bin = 'JOHN'.