No MariaDB,
NOT RLIKE é uma negação de RLIKE operador. Em outras palavras, sempre que o
RLIKE operador retornaria 1 , NOT RLIKE retornará 0 . Sintaxe
A sintaxe fica assim:
expr NOT RLIKE 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 RLIKE pat) Exemplo
Aqui está um exemplo de como usar isso em um
SELECT demonstração:SELECT 'Coffee' NOT RLIKE '^C.*e$'; Resultado:
+-----------------------------+ | 'Coffee' NOT RLIKE '^C.*e$' | +-----------------------------+ | 0 | +-----------------------------+
Aqui, o padrão é correspondido se a string de entrada começar com
C e termina com e . Sim, mas porque usamos NOT RLIKE , obtemos um resultado negativo (0 ). A declaração acima é o equivalente a fazer isso:
SELECT NOT ('Coffee' RLIKE '^C.*e$'); Resultado:
+-------------------------------+
| NOT ('Coffee' RLIKE '^C.*e$') |
+-------------------------------+
| 0 |
+-------------------------------+ Comparado com RLIKE
Aqui comparamos os resultados de
RLIKE com NOT RLIKE :SELECT
'Coffee' RLIKE '^C.*e$' AS "RLIKE",
'Coffee' NOT RLIKE '^C.*e$' AS "NOT RLIKE"; Resultado:
+-------+-----------+ | RLIKE | NOT RLIKE | +-------+-----------+ | 1 | 0 | +-------+-----------+
Um resultado positivo
Os exemplos anteriores resultaram em
0 para NOT RLIKE , 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
'Funny' RLIKE '^C.*e$' AS "RLIKE",
'Funny' NOT RLIKE '^C.*e$' AS "NOT RLIKE"; Resultado:
+-------+-----------+ | RLIKE | NOT RLIKE | +-------+-----------+ | 0 | 1 | +-------+-----------+
Alternativas
MariaDB inclui muitas funções e operadores que essencialmente fazem a mesma coisa, e isso também se aplica a
NOT RLIKE . RLIKEé um sinônimo deREGEXPoperador.NOT RLIKEé o equivalente aNOT REGEXP.RLIKEeREGEXPpode ser negado simplesmente usando oNOToperador lógico.
Portanto, todos os itens a seguir são equivalentes:
expr NOT RLIKE pat
expr NOT REGEXP pat
NOT (expr RLIKE pat)
NOT (expr REGEXP pat) E aqui está um exemplo para demonstrar:
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"; Resultado:
+----------+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | Result 4 | +----------+----------+----------+----------+ | 0 | 0 | 0 | 0 | +----------+----------+----------+----------+