MARIADB USEFUL RESOURCES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Biểu thức chính quy (Regular Expression) trong MariaDB

Ngoài khả năng khớp mẫu (pattern matching) đơn giản của mệnh đề LIKE, MariaDB còn hỗ trợ việc so khớp theo biểu thức chính quy (regular expressions) thông qua toán tử REGEXP. Toán tử này thực hiện việc so khớp mẫu cho một biểu thức chuỗi dựa trên mẫu đã được chỉ định.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Từ phiên bản 10.0.5, MariaDB đã giới thiệu hỗ trợ biểu thức chính quy PCRE, mở rộng đáng kể khả năng so khớp, bao gồm các mẫu đệ quy, khẳng định look-ahead, và nhiều tính năng phức tạp khác.

Cú pháp chung 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 nếu chuỗi so sánh khớp với mẫu đã cho, và trả về 0 nếu không có khớp.
  • Để thực hiện so sánh ngược lại, bạn có thể sử dụng NOT REGEXP. MariaDB cũng hỗ trợ các từ đồng nghĩa của REGEXP và NOT REGEXP, đó là RLIKE và NOT RLIKE, nhằm mục đích tương thích với các hệ thống khác.

Mẫu so sánh có thể là một chuỗi ký tự nguyên thủy hoặc có thể là một cột của bảng. Khi sử dụng trong chuỗi, MariaDB áp dụng cú pháp thoát của ngôn ngữ C, do đó bạn cần nhân đôi các ký tự “\” nếu muốn tìm kiếm ký tự đặc biệt. Theo mặc định, việc so sánh biểu thức chính quy là không phân biệt chữ hoa chữ thường, trừ khi áp dụng với chuỗi nhị phân.

Một số ký tự đặc biệt (wildcard) và mẫu cơ bản

  • ^
    • Khớp với đầu chuỗi.
  • $
    • Khớp với cuối chuỗi.
  • .
    • Khớp với một ký tự đơn (ngoại trừ ký tự xuống dòng).
  • [...]
    • Khớp với bất kỳ ký tự nào nằm trong dấu ngoặc vuông.
  • [^...]
    • Khớp với bất kỳ ký tự nào không nằm trong dấu ngoặc vuông.
  • p1|p2|p3
    • Khớp với bất kỳ mẫu nào trong số các mẫu được phân cách bởi dấu “|”.
  • *
    • Khớp với 0 hoặc nhiều lần xuất hiện của phần tử đứng trước.
  • +
    • Khớp với 1 hoặc nhiều lần xuất hiện của phần tử đứng trước.
  • {n}
    • Khớp chính xác với n lần xuất hiện của phần tử đứng trước.
  • {m,n}
    • Khớp với từ m đến n lần xuất hiện của phần tử đứng trước.

Ví dụ về việc khớp mẫu với REGEXP:

Bài viết này được đăng tại [free tuts .net]

  • Lấy các sản phẩm bắt đầu với “pr”:

SELECT name FROM product_tbl WHERE name REGEXP '^pr';
  • Lấy các sản phẩm kết thúc bằng “na”:
SELECT name FROM product_tbl WHERE name REGEXP 'na$';
  • Lấy các sản phẩm bắt đầu với một nguyên âm:
SELECT name FROM product_tbl WHERE name REGEXP '^[aeiou]';

Kết bài

Việc sử dụng biểu thức chính quy trong MariaDB mở rộng đáng kể khả năng tìm kiếm và so khớp mẫu so với mệnh đề LIKE truyền thống. Nhờ các ký tự đặc biệt và cú pháp phong phú, bạn có thể thực hiện các truy vấn phức tạp và linh hoạt hơn, từ đó tối ưu hóa hiệu suất truy vấn và quản lý dữ liệu hiệu quả hơn. Hãy áp dụng các công cụ này một cách hợp lý để tăng cường khả năng xử lý dữ liệu trong các ứng dụng của bạn!

Cùng chuyên mục:

Quản lý dữ liệu trùng lặp trong MariaDB

Quản lý dữ liệu trùng lặp trong MariaDB

Dãy số (Sequences) trong MariaDB

Dãy số (Sequences) trong MariaDB

Table Cloning trong MariaDB

Table Cloning trong MariaDB

Bảng tạm (Temporary Tables) trong MariaDB

Bảng tạm (Temporary Tables) trong MariaDB

Indexes & Statistics Tables trong MariaDB

Indexes & Statistics Tables trong MariaDB

Alter Command trong MariaDB

Alter Command trong MariaDB

Transactions trong MariaDB

Transactions trong MariaDB

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

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

Giá trị NULL trong MariaDB

Giá trị NULL trong MariaDB

Mệnh đề JOIN trong MariaDB

Mệnh đề JOIN trong MariaDB

Mệnh đề ORDER BY trong MariaDB

Mệnh đề ORDER BY trong MariaDB

Mệnh đề LIKE trong MariaDB

Mệnh đề LIKE trong MariaDB

Câu lệnh DELETE trong MariaDB

Câu lệnh DELETE trong MariaDB

Câu lệnh UPDATE trong MariaDB

Câu lệnh UPDATE trong MariaDB

Mệnh đề WHERE trong MariaDB

Mệnh đề WHERE trong MariaDB

Các kiểu dữ liệu (Data Types) trong MariaDB

Các kiểu dữ liệu (Data Types) trong MariaDB

Tìm hiểu Select Database trong MariaDB

Tìm hiểu Select Database trong MariaDB

Xóa cơ sở dữ liệu trong MariaDB

Xóa cơ sở dữ liệu trong MariaDB

Tạo cơ sở dữ liệu (Database) trong MariaDB

Tạo cơ sở dữ liệu (Database) trong MariaDB

Cú pháp PHP trong MariaDB

Cú pháp PHP trong MariaDB

Top