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

Jak NOT REGEXP funguje v MySQL

V MySQL NOT REGEXP je negací REGEXP operátor.

Jinými slovy, pokud řetězec odpovídá zadanému regulárnímu výrazu, výsledek je 0 , jinak je to 1 . Toto je opačný výsledek než REGEXP by se vrátilo (pokud nemá předponu NOT ).

Syntaxe

Syntaxe vypadá takto:

expr NOT REGEXP 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 REGEXP pat)

Příklad 1 – Základní použití

Zde je příklad, jak to použít v SELECT prohlášení:

SELECT 'Bread' NOT REGEXP '^Br' AS 'Result';

Výsledek:

+--------+
| Result |
+--------+
|      0 |
+--------+

Zde se vzor shoduje, pokud vstupní řetězec začíná Br . Má, ale protože používáme NOT REGEXP , dostaneme záporný výsledek (0 ).

Výše uvedené prohlášení je ekvivalentem provedení tohoto:

SELECT NOT ('Bread' REGEXP '^Br') AS 'Result';

Výsledek:

+--------+
| Result |
+--------+
|      0 |
+--------+

Příklad 2 – ve srovnání s REGEXP

Aby bylo jasno, zde porovnáme výsledky z REGEXP a NOT REGEXP :

SELECT 
  'Bread' REGEXP '^Br' AS 'REGEXP',
  'Bread' NOT REGEXP '^Br' AS 'NOT REGEXP';

Výsledek:

+--------+------------+
| REGEXP | NOT REGEXP |
+--------+------------+
|      1 |          0 |
+--------+------------+

Příklad 3 – Pozitivní výsledek

Předchozí příklady vedly k 0 pro NOT REGEXP , 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 
  'Sofa' REGEXP '^Br' AS 'REGEXP',
  'Sofa' NOT REGEXP '^Br' AS 'NOT REGEXP';

Výsledek:

+--------+------------+
| REGEXP | NOT REGEXP |
+--------+------------+
|      0 |          1 |
+--------+------------+

  1. ORA-00054:zdroj je zaneprázdněn a získává se specifikací NOWAIT

  2. SSL pro připojení Nodejs PostgreSQL

  3. Vrátit všechny cizí klíče a KONTROLA omezení v databázi SQL Server (příklady T-SQL)

  4. Přidání více sloupců PO konkrétním sloupci v MySQL