V MySQL NOT RLIKE je negací RLIKE operátor.
Jinými slovy, kdykoli RLIKE operátor vrátí 1 , NOT RLIKE vrátí 0 .
Syntaxe
Syntaxe vypadá takto:
expr NOT RLIKE pat
Kde expr je vstupní řetězec a pat je regulární výraz, proti kterému testujete řetězec.
Je to ekvivalent provedení následujícího:
NOT (expr RLIKE pat)
Příklad 1 – Základní použití
Zde je příklad použití v SELECT prohlášení:
SELECT 'Coffee' NOT RLIKE '^C.*e$' AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | 0 | +--------+
Zde se vzor shoduje, pokud vstupní řetězec začíná C a končí e . Má, ale protože používáme NOT RLIKE , dostaneme záporný výsledek (0 ).
Výše uvedené prohlášení je ekvivalentem provedení tohoto:
SELECT NOT ('Coffee' RLIKE '^C.*e$') AS 'Result'; Výsledek:
+--------+ | Result | +--------+ | 0 | +--------+
Příklad 2 – ve srovnání s RLIKE
Zde porovnáváme výsledky z RLIKE s NOT RLIKE :
SELECT 'Coffee' RLIKE '^C.*e$' AS 'RLIKE', 'Coffee' NOT RLIKE '^C.*e$' AS 'NOT RLIKE';
Výsledek:
+-------+-----------+ | RLIKE | NOT RLIKE | +-------+-----------+ | 1 | 0 | +-------+-----------+
Příklad 3 – Pozitivní výsledek
Předchozí příklady vedly k 0 pro NOT RLIKE , protože řetězec udělal skutečně odpovídat vzoru. Zde je příklad, kdy dostaneme 1 , což znamená, že řetězec není zápas:
SELECT 'Funny' RLIKE '^C.*e$' AS 'RLIKE', 'Funny' NOT RLIKE '^C.*e$' AS 'NOT RLIKE';
Výsledek:
+-------+-----------+ | RLIKE | NOT RLIKE | +-------+-----------+ | 0 | 1 | +-------+-----------+
Alternativy
MySQL obsahuje mnoho funkcí a operátorů, které v podstatě dělají totéž, a to platí také pro NOT RLIKE .
Nejprve RLIKE je synonymem pro REGEXP_LIKE() funkce (stejně jako REGEXP ).
Za druhé, NOT RLIKE je ekvivalentem NOT REGEXP .
Za třetí, RLIKE , REGEXP a REGEXP_LIKE() lze negovat jednoduše pomocí NOT logický operátor.
Proto jsou všechny následující položky ekvivalentní:
expr NOT RLIKE pat expr NOT REGEXP pat NOT (expr RLIKE pat) NOT (expr REGEXP pat) NOT REGEXP_LIKE(expr, pat)
A zde je příklad k demonstraci:
SELECT
'Car' NOT RLIKE '^C' AS 'Result 1',
'Car' NOT REGEXP '^C' AS 'Result 2',
NOT ('Car' RLIKE '^C') AS 'Result 3',
NOT ('Car' REGEXP '^C') AS 'Result 4',
NOT REGEXP_LIKE('Car', '^C') AS 'Result 5'; Výsledek:
+----------+----------+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | Result 4 | Result 5 | +----------+----------+----------+----------+----------+ | 0 | 0 | 0 | 0 | 0 | +----------+----------+----------+----------+----------+