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

Lấy tên bắt đầu bằng ký tự cụ thể dùng LIKE trong MySQL

Sử dụng toán tử LIKE với pattern 'C%' để tìm chuỗi bắt đầu bằng chữ 'C' (hoặc ký tự bất kỳ).

Tạo bảng

mysql> CREATE TABLE DemoTable (StudentFirstName VARCHAR(20));

Chèn dữ liệu

mysql> INSERT INTO DemoTable VALUES('John'), ('Carol'), ('Johnny'), ('Robert'), ('Chris'), ('Ramit');

Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+------------------+
| StudentFirstName |
+------------------+
| John             |
| Carol            |
| Johnny           |
| Robert           |
| Chris            |
| Ramit            |
+------------------+

Tìm tên bắt đầu bằng 'C'

mysql> SELECT * FROM DemoTable WHERE StudentFirstName LIKE 'C%';
+------------------+
| StudentFirstName |
+------------------+
| Carol            |
| Chris            |
+------------------+

Pattern LIKE cơ bản

Phân biệt chữ hoa/thường (Case Sensitivity)

  • Mặc định: Không phân biệt (case-insensitive) với collation *_ci (ví dụ: utf8_general_ci)
  • 'c%' cũng khớp 'Carol', 'Chris'
  • Muốn phân biệt: WHERE StudentFirstName LIKE BINARY 'C%' hoặc collation *_cs / *_bin

Hiệu năng

  • LIKE 'C%' (prefix) có thể dùng index
  • LIKE '%C%' (contains) không dùng index → full table scan
  • Với bảng lớn, cân nhắc Full-text search hoặc Generated column + index
PatternÝ nghĩaVí dụ khớp
'C%'Bắt đầu bằng 'C'Carol, Chris, Cat
'%C'Kết thúc bằng 'C'Marc, Luc
'%C%'Chứa 'C' bất kỳ vị tríAlice, Bob, Carol
'C_'Bắt đầu 'C' + đúng 1 ký tựCa, Co, C1
'C__%'Bắt đầu 'C' + ít nhất 2 ký tựCat, Carol