Trong MySQL, NOT REGEXP
là phủ định của REGEXP
nhà điều hành.
Nói cách khác, nếu chuỗi khớp với biểu thức chính quy được cung cấp, kết quả là 0
, nếu không thì nó là 1
. Đây là kết quả ngược lại với những gì REGEXP
sẽ trả về (khi nó không có tiền tố là NOT
).
Cú pháp
Cú pháp như sau:
expr NOT REGEXP pat
Ở đâu expr
là chuỗi đầu vào và pat
là biểu thức chính quy mà bạn đang kiểm tra chuỗi.
Nó tương đương với việc làm như sau:
NOT (expr REGEXP pat)
Ví dụ 1 - Cách sử dụng cơ bản
Dưới đây là ví dụ về cách sử dụng điều này trong SELECT
tuyên bố:
SELECT 'Bread' NOT REGEXP '^Br' AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 0 | +--------+
Ở đây, mẫu được khớp nếu chuỗi đầu vào bắt đầu bằng Br
. Nó đúng, nhưng vì chúng tôi sử dụng NOT REGEXP
, chúng tôi nhận được kết quả âm tính (0
).
Câu lệnh trên tương đương với việc thực hiện điều này:
SELECT NOT ('Bread' REGEXP '^Br') AS 'Result';
Kết quả:
+--------+ | Result | +--------+ | 0 | +--------+
Ví dụ 2 - So với REGEXP
Để làm rõ hơn, ở đây chúng tôi so sánh kết quả từ REGEXP
và NOT REGEXP
:
SELECT 'Bread' REGEXP '^Br' AS 'REGEXP', 'Bread' NOT REGEXP '^Br' AS 'NOT REGEXP';
Kết quả:
+--------+------------+ | REGEXP | NOT REGEXP | +--------+------------+ | 1 | 0 | +--------+------------+
Ví dụ 3 - Kết quả Tích cực
Các ví dụ trước dẫn đến 0
cho NOT REGEXP
, bởi vì chuỗi did thực sự phù hợp với mô hình. Dưới đây là một ví dụ mà chúng tôi nhận được 1
, chỉ ra rằng chuỗi không khớp:
SELECT 'Sofa' REGEXP '^Br' AS 'REGEXP', 'Sofa' NOT REGEXP '^Br' AS 'NOT REGEXP';
Kết quả:
+--------+------------+ | REGEXP | NOT REGEXP | +--------+------------+ | 0 | 1 | +--------+------------+