MariaDB - Biểu thức chính quy

Ngoài đối sánh mẫu có sẵn từ các mệnh đề LIKE, MariaDB cung cấp đối sánh dựa trên biểu thức chính quy thông qua toán tử REGEXP. Toán tử thực hiện đối sánh mẫu cho một biểu thức chuỗi dựa trên một mẫu nhất định.

MariaDB 10.0.5 đã giới thiệu Biểu thức chính quy PCRE, giúp tăng đáng kể phạm vi đối sánh vào các lĩnh vực như mẫu đệ quy, xác nhận nhìn trước và hơn thế nữa.

Xem lại cách sử dụng cú pháp của toán tử REGEXP chuẩn được cung cấp bên dưới -

SELECT column FROM table_name WHERE column REGEXP '[PATTERN]';

REGEXP trả về 1 cho một khớp mẫu hoặc 0 khi không có.

Một tùy chọn cho điều ngược lại tồn tại ở dạng NOT REGEXP. MariaDB cũng cung cấp các từ đồng nghĩa cho REGEXP và NOT REGEXP, RLIKE và NOT RLIKE, được tạo ra vì lý do tương thích.

Mẫu được so sánh có thể là một chuỗi ký tự hoặc một cái gì đó khác, chẳng hạn như cột bảng. Trong chuỗi, nó sử dụng cú pháp C thoát, vì vậy hãy nhân đôi bất kỳ ký tự “\” nào. REGEXP cũng không phân biệt chữ hoa chữ thường, ngoại trừ các chuỗi nhị phân.

Dưới đây là bảng các mẫu có thể sử dụng:

Sr.No Mô hình & Mô tả
1

^

Nó khớp với phần bắt đầu của chuỗi.

2

$

Nó khớp với phần cuối của chuỗi.

3

.

Nó khớp với một ký tự duy nhất.

4

[...]

Nó khớp với bất kỳ ký tự nào trong ngoặc.

5

[^...]

Nó khớp với bất kỳ ký tự nào không được liệt kê trong ngoặc.

6

p1|p2|p3

Nó phù hợp với bất kỳ mẫu nào.

7

*

Nó khớp với 0 hoặc nhiều trường hợp của phần tử trước đó.

số 8

+

Nó khớp với 1 hoặc nhiều trường hợp của phần tử trước đó.

9

{n}

Nó khớp với n thể hiện của phần tử trước đó.

10

{m,n}

Nó so khớp từ m đến n trường hợp của phần tử trước đó.

Xem lại các ví dụ đối sánh mẫu được cung cấp bên dưới -

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]';