MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como o NOT REGEXP funciona no MariaDB


No MariaDB, o NOT REGEXP operador é uma negação do REGEXP operador.

Se a string corresponder à expressão regular fornecida, o resultado será 0 , caso contrário é 1 . Este é o resultado oposto ao que o REGEXP retornaria (quando não é prefixado com NOT ).

Sintaxe


A sintaxe fica assim:
expr NOT REGEXP pat

Onde expr é a string de entrada e pat é a expressão regular para a qual você está testando a string.

É o equivalente a fazer o seguinte:
NOT (expr REGEXP pat)

Exemplo


Aqui está um exemplo de como usar isso em um SELECT demonstração:
SELECT 'Bread' NOT REGEXP '^Br';

Resultado:
+--------------------------+
| 'Bread' NOT REGEXP '^Br' |
+--------------------------+
|                        0 |
+--------------------------+

Aqui, o padrão é correspondido se a string de entrada começar com Br . Sim, mas porque usamos NOT REGEXP , obtemos um resultado negativo (0 ).

A declaração acima é o equivalente a fazer isso:
SELECT NOT ('Bread' REGEXP '^Br');

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

Comparado com REGEXP


Neste exemplo, comparamos os resultados de REGEXP e NOT REGEXP :
SELECT 
  'Bread' REGEXP '^Br' AS "REGEXP",
  'Bread' NOT REGEXP '^Br' AS "NOT REGEXP";

Resultado:
+--------+------------+
| REGEXP | NOT REGEXP |
+--------+------------+
|      1 |          0 |
+--------+------------+

Um resultado positivo


Os exemplos anteriores resultaram em 0 para NOT REGEXP , porque a string fez realmente correspondem ao padrão. Aqui está um exemplo em que obtemos um 1 , que indica que a string não partida:
SELECT 
  'Sofa' REGEXP '^Br' AS "REGEXP",
  'Sofa' NOT REGEXP '^Br' AS "NOT REGEXP";

Resultado:
+--------+------------+
| REGEXP | NOT REGEXP |
+--------+------------+
|      0 |          1 |
+--------+------------+