В MySQL, NOT REGEXP
е отрицание на REGEXP
оператор.
С други думи, ако низът съвпада с предоставения регулярен израз, резултатът е 0
, в противен случай е 1
. Това е обратният резултат на този в REGEXP
ще се върне (когато не е с префикс NOT
).
Синтаксис
Синтаксисът е така:
expr НЕ REGEXP поглаждане
Където expr
е входният низ и pat
е регулярният израз, срещу който тествате низа.
Това е еквивалентно да направите следното:
НЕ (expr REGEXP поглаждане)
Пример 1 – Основна употреба
Ето пример за това как да използвате това в SELECT
изявление:
ИЗБЕРЕТЕ 'Хляб' НЕ REGEXP '^Br' КАТО 'Резултат';
Резултат:
+--------+| Резултат |+--------+| 0 |+-------+
Тук шаблонът се съвпада, ако входният низ започва с Br
. Така е, но защото използваме NOT REGEXP
, получаваме отрицателен резултат (0
).
Горното твърдение е еквивалентно на това:
ИЗБЕРЕТЕ НЕ ('Bread' REGEXP '^Br') КАТО 'Резултат';
Резултат:
+--------+| Резултат |+--------+| 0 |+-------+
Пример 2 – В сравнение с REGEXP
За да стане ясно, тук сравняваме резултатите от REGEXP
и NOT REGEXP
:
ИЗБЕРЕТЕ 'Bread' REGEXP '^Br' КАТО 'REGEXP', 'Bread' NOT REGEXP '^Br' КАТО 'NOT REGEXP';
Резултат:
<пред>+--------+-----------+| REGEXP | НЕ REGEXP |+--------+-----------+| 1 | 0 |+-------+------------+Пример 3 – Положителен резултат
Предишните примери доведоха до 0
за NOT REGEXP
, защото низът направи всъщност съвпадат с модела. Ето пример, където получаваме 1
, което показва, че низът не съвпадение:
ИЗБЕРЕТЕ 'Sofa' REGEXP '^Br' КАТО 'REGEXP', 'Sofa' НЕ REGEXP '^Br' КАТО 'NOT REGEXP';
Резултат:
<пред>+--------+-----------+| REGEXP | НЕ REGEXP |+--------+-----------+| 0 | 1 |+--------+------------+