Regex tìm kiếm toàn văn mysql
Bài viết sẽ hướng dẫn bạn cách sử dụng toán tử Giới thiệu về biểu thức chính quyBiểu thức chính quy (biểu thức chính quy) là 1 chuỗi đặc biệt mô tả các mẫu tìm kiếm. Nó là 1 công cụ mạnh mẽ cung cấp cho bạn cách rút gọn và linh hoạt để xác định các chuỗi văn bản. Ví dụ. các ký tự, và các từ dựa trên các mẫu Đơn giản, bạn có thể sử dụng biểu thức chính quy để tìm email tìm kiếm, địa chỉ IP, số điện thoại hoặc bất kỳ thứ gì có mẫu cụ thể. Biểu thức chính quy sử dụng cú pháp riêng mà có thể được giải thích bằng bộ xử lý biểu thức chính quy. Biểu thức chính quy được sử dụng rộng rãi trên hầu hết các nền tảng từ ngôn ngữ lập trình (Javascript, PHP, Python, …) đến cơ sở dữ liệu bao gồm cả MySQL Ưu điểm của việc sử dụng 1 là không bị giới hạn tìm kiếm do việc cố định các mẫu tìm kiếm với dấu 0 và dấu gạch dưới 1. Biểu thức chính quy linh hoạt hơn trong việc tạo ra các mẫu tìm kiếmNhược điểm là nó rất khó hiểu và bảo trì với các mô hình phức tạp. Do đó, bạn nên mô tả ý nghĩa của biểu thức chính quy trong nhận xét của lệnh SQL. Hơn nữa, tốc độ trả về dữ liệu sẽ giảm đi nếu mẫu phức tạp trong biểu thức chính quy Vì vậy hãy cân nhắc trước khi sử dụng biểu thức chính quy phức tạp Viết tắt của biểu thức chính quy. regex hoặc regexp REGEXP Toán tửĐoạn mã bên dưới sử dụng toán tử REGEXP trong mệnh đề WHERE
Lệnh thực thi công việc khớp mẫu của 2 với 3Nếu giá trị của string_column khớp với mẫu thì biểu thức trong mệnh đề WHERE sẽ trả về true, ngược lại là false Nếu hoặc chuỗi_cột hoặc mẫu là NULL, thì kết quả là NULL Ngoài toán tử REGEXP, bạn có thể sử dụng toán tử RLIKE, tương đồng với toán tử REGEXP Trái ngược với toán tử REGEXP is NOT REGEXP Ví dụ sử dụng REGEXPGiả sử bạn muốn tìm tất cả các sản phẩm với họ bắt đầu bằng chữ cái A, B hoặc C
Giải thích mẫu 1 chút
Bảng sau miêu tả một số ký tự và cấu trúc thường được sử dụng trong biểu thức chính quy MetacharacterBehavior ^khớp với vị trí đầu tiên của chuỗi được tìm kiếm $khớp tới vị trí cuối của chuỗi được tìm kiếm. khớp với bất kỳ ký tự nào […]khớp với bất kỳ ký tự nào chỉ được ra trong dấu ngoặc vuông [^…]khớp với bất kỳ ký tự nào không được ra trong dấu ngoặc vuông p1p2khớp với bất kỳ ký tự nào giữa các mẫuĐể tìm các sản phẩm có tên bắt đầu bằng ký tự 4 thì dùng ký hiệu 5________số 8 Nếu bạn muốn toán tử REGEXP so sánh chuỗi phân biệt hoa thường thì bạn có thể sử dụng toán tử BINARY để ép kiểu chuỗi về kiểu chuỗi nhị phân By because MySQL so sánh chuỗi nhị phân theo byte thay vì theo từng ký tự. Đồng nghĩa công việc của nó so sánh phân biệt hoa thường |