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

Tìm kiếm theo chữ cái (A, B, C) với REGEXP trong MySQL


Giới thiệu

Để tìm kiếm các bản ghi bắt đầu bằng một tập hợp ký tự cụ thể (ví dụ: A, B hoặc C), MySQL cung cấp toán tử REGEXP cho phép sử dụng biểu thức chính quy.

Cú pháp

SELECT * FROM yourTableName 
WHERE yourColumnName REGEXP '^[ABC]';
  • ^ : Khớp bắt đầu chuỗi.
  • [ABC] : Khớp bất kỳ ký tự nào trong tập {A, B, C}.

Ví dụ minh họa

Tạo bảng và chèn dữ liệu

mysql> CREATE TABLE DemoTable (
    Name VARCHAR(100)
);
mysql> INSERT INTO DemoTable VALUES 
('Chris'), ('David'), ('Mike'), ('Bob'), ('Mike'), ('Adam');

Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+-------+
| Name  |
+-------+
| Chris |
| David |
| Mike  |
| Bob   |
| Mike  |
| Adam  |
+-------+

Truy vấn REGEXP

mysql> SELECT * FROM DemoTable WHERE Name REGEXP '^[ABC]';

Kết quả

+-------+
| Name  |
+-------+
| Chris |
| Bob   |
| Adam  |
+-------+

Mở rộng

  • Tìm tên bắt đầu bằng A-Z: REGEXP '^[A-Z]'
  • Tìm tên kết thúc bằng 'son': REGEXP 'son$'
  • Không phân biệt chữ hoa/thường: MySQL REGEXP mặc định không phân biệt (case-insensitive) trừ khi dùng BINARY.

Lưu ý hiệu năng: REGEXP không sử dụng index thông thường. Với bảng lớn, cân nhắc dùng LIKE 'A%' hoặc LIKE 'B%' kết hợp OR, hoặc tạo fulltext index.