Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como NOT REGEXP funciona no MySQL


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

Em outras palavras, 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 1 – Uso básico


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

Resultado:
+--------+
| Result |
+--------+
|      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') AS 'Result';

Resultado:
+--------+
| Result |
+--------+
|      0 |
+--------+

Exemplo 2 – Comparado com REGEXP


Para deixar claro, aqui 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 |
+--------+------------+

Exemplo 3 – 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 |
+--------+------------+