MySQL hỗ trợ so khớp mẫu dựa trên biểu thức chính quy qua toán tử REGEXP. Bảng dưới liệt kê các mẫu thường dùng:
| Mẫu | Ý nghĩa |
|---|---|
| ^ | Đầu chuỗi |
| $ | Cuối chuỗi |
| . | Bất kỳ ký tự đơn nào |
| [...] | Bất kỳ ký tự nào trong ngoặc vuông |
| [^...] | Bất kỳ ký tự nào không trong ngoặc vuông |
| p1|p2|p3 | Lựa chọn: khớp p1 hoặc p2 hoặc p3 |
| * | 0 hoặc nhiều lần phần tử trước |
| + | 1 hoặc nhiều lần phần tử trước |
| {n} | Chính xác n lần phần tử trước |
| {m,n} | Từ m đến n lần phần tử trước |
Ví dụ
Bảng Student_info có dữ liệu:
mysql> Select * from Student_info;
+------+---------+------------+------------+
| id | Name | Address | Subject |
+------+---------+------------+------------+
| 101 | YashPal | Amritsar | History |
| 105 | Gaurav | Chandigarh | Literature |
| 130 | Ram | Jhansi | Computers |
| 132 | Shyam | Chandigarh | Economics |
| 133 | Mohan | Delhi | Computers |
+------+---------+------------+------------+
5 rows in set (0.00 sec)
Các truy vấn dùng REGEXP trên cột Name:
mysql> Select Name from student_info WHERE Name REGEXP '^Y';
+---------+
| Name |
+---------+
| YashPal |
+---------+
1 row in set (0.11 sec)
Tìm tên bắt đầu bằng Y.
mysql> Select name from student_info WHERE Name REGEXP 'am$';
+-------+
| name |
+-------+
| Ram |
| Shyam |
+-------+
2 rows in set (0.00 sec)
Tìm tên kết thúc bằng am.
mysql> Select name from student_info WHERE Name REGEXP 'av';
+--------+
| name |
+--------+
| Gaurav |
+--------+
1 row in set (0.00 sec)
Tìm tên chứa av.
mysql> Select name from student_info WHERE Name REGEXP '^[aeiou]|am$';
+-------+
| name |
+-------+
| Ram |
| Shyam |
+-------+
2 rows in set (0.00 sec)
Tìm tên bắt đầu bằng nguyên âm HOẶC kết thúc bằng am.