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

Como NOT LIKE funciona no MySQL


No MySQL, você pode usar NOT LIKE para realizar uma negação do LIKE operador. Em outras palavras, NOT LIKE retorna o resultado oposto para LIKE .

Se a string corresponder ao padrão fornecido, o resultado será 0 , caso contrário é 1 .

O padrão não precisa necessariamente ser uma string literal. Esta função pode ser usada com expressões de string e colunas de tabela.


Sintaxe


A sintaxe fica assim:
expr NOT LIKE pat [ESCAPE 'escape_char']

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

O opcional ESCAPE cláusula permite que você especifique um caractere de escape. O caractere de escape padrão é \ , então você pode omitir esta cláusula se não precisar alterá-la.

Este operador é o equivalente a fazer o seguinte:
NOT (expr LIKE pat [ESCAPE 'escape_char'])

Exemplo 1 – Uso básico


Aqui está um exemplo de como usar este operador em um SELECT demonstração:
SELECT 'Charlie' NOT LIKE 'Char%';

Resultado:
+----------------------------+
| 'Charlie' NOT LIKE 'Char%' |
+----------------------------+
|                          0 |
+----------------------------+

Neste caso, o valor de retorno é 0 o que significa que a string de entrada fez realmente correspondem ao padrão.

Exemplo 2 – Comparado com LIKE


Aqui é comparado com LIKE :
SELECT 
  'Charlie' LIKE 'Char%' AS 'Like',
  'Charlie' NOT LIKE 'Char%' AS 'Not Like';

Resultado:
+------+----------+
| Like | Not Like |
+------+----------+
|    1 |        0 |
+------+----------+

Exemplo 3 – Uma Sintaxe Equivalente


Como mencionado, NOT LIKE é o equivalente a usar o NOT operador lógico contra o LIKE operador. Aqui está o que quero dizer:
SELECT 
  'Charlie' NOT LIKE 'Char%' AS 'NOT LIKE syntax',
  NOT ('Charlie' LIKE 'Char%') AS 'Equivalent syntax';

Resultado:
+-----------------+-------------------+
| NOT LIKE syntax | Equivalent syntax |
+-----------------+-------------------+
|               0 |                 0 |
+-----------------+-------------------+

Exemplo 4 – Um exemplo de banco de dados


O LIKE O operador geralmente é usado dentro de um WHERE cláusula de um SELECT declaração ao consultar um banco de dados. Portanto, NOT LIKE pode ser usado da mesma forma.

Quando usamos NOT LIKE dessa forma, ele restringe os resultados apenas aos registros que não correspondência, mas vemos os resultados reais (não apenas um 1 ou 0 ).

Aqui está um exemplo de como podemos usar esse operador em uma consulta de banco de dados:
SELECT ArtistId, ArtistName
FROM Artists
WHERE ArtistName NOT LIKE 'B%';

Resultado:
+----------+------------------------+
| ArtistId | ArtistName             |
+----------+------------------------+
|        1 | Iron Maiden            |
|        2 | AC/DC                  |
|        3 | Allan Holdsworth       |
|        5 | Devin Townsend         |
|        6 | Jim Reeves             |
|        7 | Tom Jones              |
|        8 | Maroon 5               |
|        9 | The Script             |
|       10 | Lit                    |
|       12 | Michael Learns to Rock |
|       13 | Carabao                |
|       14 | Karnivool              |
+----------+------------------------+

Nesse caso, foi uma consulta simples que retorna todos os artistas cujos nomes não comece com a letra B .

Aqui está a lista completa de artistas nessa tabela:
SELECT ArtistId, ArtistName
FROM Artists;

Resultado:
+----------+------------------------+
| ArtistId | ArtistName             |
+----------+------------------------+
|        1 | Iron Maiden            |
|        2 | AC/DC                  |
|        3 | Allan Holdsworth       |
|        4 | Buddy Rich             |
|        5 | Devin Townsend         |
|        6 | Jim Reeves             |
|        7 | Tom Jones              |
|        8 | Maroon 5               |
|        9 | The Script             |
|       10 | Lit                    |
|       11 | Black Sabbath          |
|       12 | Michael Learns to Rock |
|       13 | Carabao                |
|       14 | Karnivool              |
|       15 | Birds of Tokyo         |
|       16 | Bodyjar                |
+----------+------------------------+

Então, se removermos o NOT (ou seja, usamos apenas LIKE ) obtemos este resultado:
SELECT ArtistId, ArtistName
FROM Artists
WHERE ArtistName LIKE 'B%';

Resultado:
+----------+----------------+
| ArtistId | ArtistName     |
+----------+----------------+
|        4 | Buddy Rich     |
|       11 | Black Sabbath  |
|       15 | Birds of Tokyo |
|       16 | Bodyjar        |
+----------+----------------+

Exemplo 5 – Fuga com o caractere de barra invertida


O caractere de barra invertida (\ ) pode ser usado para escapar de qualquer um dos caracteres curinga (_ e % ). Aqui está um exemplo de uma pesquisa com e sem o caractere de escape:
SELECT 
  'usr+123' NOT LIKE 'usr_123' AS 'Without escape',
  'usr+123' NOT LIKE 'usr\_123' AS 'With escape';

Resultado:
+----------------+-------------+
| Without escape | With escape |
+----------------+-------------+
|              0 |           1 |
+----------------+-------------+

Exemplo 6 – O ESCAPE Cláusula


Você também pode usar o ESCAPE cláusula para especificar seu próprio caractere de escape personalizado. Aqui está um exemplo:
SELECT 
  'usr_123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 1',
  'usr+123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 2';

Resultado:
+----------+----------+
| String 1 | String 2 |
+----------+----------+
|        0 |        1 |
+----------+----------+

Exemplo 7 – Expressões Numéricas


Este operador pode ser usado em expressões numéricas. Aqui está um exemplo:
SELECT 
  1234 NOT LIKE '12%',
  1234 NOT LIKE '12_';

Resultado:
+---------------------+---------------------+
| 1234 NOT LIKE '12%' | 1234 NOT LIKE '12_' |
+---------------------+---------------------+
|                   0 |                   1 |
+---------------------+---------------------+