sql >> Databáze >  >> RDS >> Mysql

Jak NOT RLIKE funguje v MySQL

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 |
+----------+----------+----------+----------+----------+

  1. Ukládání dat XML na SQL Server

  2. Přesun do MariaDB Backup

  3. Formátování čísel pomocí odsazení úvodními nulami v SQL Server

  4. Směrování pouze pro čtení pro Always On