sql >> Databáze >  >> RDS >> MariaDB

Jak NOT REGEXP funguje v MariaDB

V MariaDB, NOT REGEXP operátor je negací REGEXP operátor.

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

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

SELECT 'Bread' NOT REGEXP '^Br';

Výsledek:

+--------------------------+
| 'Bread' NOT REGEXP '^Br' |
+--------------------------+
|                        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');

Výsledek:

+----------------------------+
| NOT ('Bread' REGEXP '^Br') |
+----------------------------+
|                          0 |
+----------------------------+

Ve srovnání s REGEXP

V tomto příkladu porovnává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 |
+--------+------------+

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. Metadata týkající se typů záznamů na úrovni balíčků PL/SQL

  2. Jaké jsou kroky v návrhu databáze?

  3. SQLite ALTER TABLE

  4. Jak aplikovat funkci na každý prvek sloupce pole v Postgresu?