V MariaDB, 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, pro který řetězec testujete.
Je to ekvivalent provedení následujícího:
NOT (expr RLIKE pat)
Příklad
Zde je příklad použití v SELECT
prohlášení:
SELECT 'Coffee' NOT RLIKE '^C.*e$';
Výsledek:
+-----------------------------+ | 'Coffee' NOT RLIKE '^C.*e$' | +-----------------------------+ | 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$');
Výsledek:
+-------------------------------+ | NOT ('Coffee' RLIKE '^C.*e$') | +-------------------------------+ | 0 | +-------------------------------+
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 | +-------+-----------+
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
MariaDB obsahuje mnoho funkcí a operátorů, které v podstatě dělají totéž, a to platí také pro NOT RLIKE
.
RLIKE
je synonymem proREGEXP
operátor.NOT RLIKE
je ekvivalentemNOT REGEXP
.RLIKE
aREGEXP
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)
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";
Výsledek:
+----------+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | Result 4 | +----------+----------+----------+----------+ | 0 | 0 | 0 | 0 | +----------+----------+----------+----------+