Biểu thức chính quy trong MariaDB
Ngoài khả năng so khớp mẫu được cung cấp bởi các mệnh đề LIKE, MariaDB còn hỗ trợ so khớp dựa trên biểu thức chính quy thông qua toán tử REGEXP. Toán tử này cho phép thực hiện so khớp mẫu cho một biểu thức chuỗi dựa trên một mẫu đã cho.

Từ phiên bản MariaDB 10.0.5, các biểu thức chính quy theo chuẩn PCRE đã được giới thiệu, mở rộng đáng kể khả năng so khớp của hệ thống, cho phép áp dụng các mẫu phức tạp như mẫu đệ quy, kiểm tra trước (look-ahead assertions) và nhiều tính năng nâng cao khác.
Cú pháp cơ bản của toán tử REGEXP trong MariaDB
SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';
Toán tử REGEXP trả về giá trị 1 khi có sự khớp với mẫu và trả về 0 nếu không có sự khớp.
Ngoài ra, bạn có thể sử dụng từ khóa NOT REGEXP (các từ đồng nghĩa của REGEXP và NOT REGEXP là RLIKE và NOT RLIKE) để kiểm tra điều kiện ngược lại, giúp tăng khả năng tương thích và linh hoạt trong việc viết truy vấn.
Bài viết này được đăng tại [free tuts .net]
Mẫu so khớp có thể là một chuỗi ký tự cụ thể hoặc là giá trị từ một cột trong bảng. Khi so khớp với chuỗi, MariaDB sử dụng cú pháp escape theo chuẩn C, do đó bạn cần nhân đôi ký tự \
nếu muốn biểu diễn một dấu gạch chéo ngược. Ngoài ra, biểu thức chính quy REGEXP không phân biệt chữ hoa chữ thường, trừ khi làm việc với chuỗi nhị phân.
Dưới đây là bảng các mẫu biểu thức và mô tả của chúng:
STT | Mẫu và Mô tả |
---|---|
1 | ^ : Khớp với đầu chuỗi. |
2 | $ : Khớp với cuối chuỗi. |
3 | . : Khớp với một ký tự bất kỳ. |
4 | [...] : Khớp với bất kỳ ký tự nào có trong dấu ngoặc vuông. |
5 | [^...] : Khớp với bất kỳ ký tự nào không có trong danh sách dấu ngoặc vuông. |
6 | **p1 |
7 | * : Khớp với 0 hoặc nhiều lần xuất hiện của phần tử đứng trước đó. |
8 | + : Khớp với 1 hoặc nhiều lần xuất hiện của phần tử đứng trước đó. |
9 | {n} : Khớp với chính xác n lần xuất hiện của phần tử đứng trước đó. |
10 | {m,n} : Khớp với từ m đến n lần xuất hiện của phần tử đứng trước đó. |
Một số ví dụ minh họa cho việc sử dụng biểu thức chính quy:
-
Các sản phẩm bắt đầu bằng “pr”:
SELECT name FROM product_tbl WHERE name REGEXP '^pr';
- Các sản phẩm kết thúc bằng “na”:
SELECT name FROM product_tbl WHERE name REGEXP 'na$';
- Các sản phẩm bắt đầu bằng một nguyên âm:
SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';
Việc sử dụng biểu thức chính quy trong MariaDB mở ra khả năng linh hoạt và mạnh mẽ trong việc truy xuất dữ liệu theo mẫu, giúp bạn xây dựng các truy vấn phức tạp một cách dễ dàng và hiệu quả hơn.
Kết bài
%
và _
. Nhờ khả năng khớp mẫu mạnh mẽ và linh hoạt, biểu thức chính quy cho phép bạn truy xuất và xử lý dữ liệu theo các tiêu chí phức tạp mà không bị giới hạn bởi so khớp chính xác như mệnh đề LIKE. Việc áp dụng các biểu thức này không chỉ giúp tối ưu hóa các truy vấn mà còn nâng cao hiệu quả quản lý và bảo trì cơ sở dữ liệu. Hãy tiếp tục áp dụng và khám phá thêm các kỹ thuật nâng cao để giải quyết các bài toán truy xuất dữ liệu trong các dự án thực tế của bạn. Chúc bạn thành công!