sql >> Base de Datos >  >> RDS >> Mysql

Cómo funciona NOT LIKE en MySQL

En MySQL, puede usar NOT LIKE para realizar una negación del LIKE operador. En otras palabras, NOT LIKE devuelve el resultado opuesto a LIKE .

Si la cadena coincide con el patrón proporcionado, el resultado es 0 , de lo contrario es 1 .

El patrón no necesariamente tiene que ser una cadena literal. Esta función se puede utilizar con expresiones de cadena y columnas de tabla.

Sintaxis

La sintaxis es así:

expr NOT LIKE pat [ESCAPE 'escape_char']

Donde expr es la cadena de entrada y pat es el patrón contra el que está probando la cadena.

El ESCAPE opcional cláusula le permite especificar un carácter de escape. El carácter de escape predeterminado es \ , por lo que puede omitir esta cláusula si no necesita cambiarla.

Este operador es el equivalente a hacer lo siguiente:

NOT (expr LIKE pat [ESCAPE 'escape_char'])

Ejemplo 1:uso básico

Aquí hay un ejemplo de cómo usar este operador en un SELECT declaración:

SELECT 'Charlie' NOT LIKE 'Char%';

Resultado:

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

En este caso, el valor de retorno es 0 lo que significa que la cadena de entrada did en realidad coincide con el patrón.

Ejemplo 2:Comparado con LIKE

Aquí se compara con LIKE :

SELECT 
  'Charlie' LIKE 'Char%' AS 'Like',
  'Charlie' NOT LIKE 'Char%' AS 'Not Like';

Resultado:

+------+----------+
| Like | Not Like |
+------+----------+
|    1 |        0 |
+------+----------+

Ejemplo 3:una sintaxis equivalente

Como se mencionó, NOT LIKE es el equivalente de usar el NOT operador lógico contra LIKE operador. Esto es lo que quiero decir:

SELECT 
  'Charlie' NOT LIKE 'Char%' AS 'NOT LIKE syntax',
  NOT ('Charlie' LIKE 'Char%') AS 'Equivalent syntax';

Resultado:

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

Ejemplo 4:un ejemplo de base de datos

El LIKE El operador se usa a menudo dentro de un WHERE cláusula de un SELECT declaración al consultar una base de datos. Por lo tanto, NOT LIKE se puede usar de la misma manera.

Cuando usamos NOT LIKE de esta manera, reduce los resultados a solo aquellos registros que no coinciden, pero vemos los resultados reales (no solo un 1 o 0 ).

Aquí hay un ejemplo de cómo podemos usar este operador dentro de una consulta de base de datos:

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              |
+----------+------------------------+

En este caso, fue una consulta simple que devuelve todos los artistas cuyos nombres no empezar con la letra B .

Aquí está la lista completa de artistas en esa tabla:

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                |
+----------+------------------------+

Entonces, si eliminamos el NOT (es decir, solo usamos LIKE ) obtenemos 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        |
+----------+----------------+

Ejemplo 5:escapar con el carácter de barra invertida

El carácter de barra invertida (\ ) se puede utilizar para escapar de cualquiera de los caracteres comodín (_ y % ). Aquí hay un ejemplo de una búsqueda de este tipo con y sin el carácter 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 |
+----------------+-------------+

Ejemplo 6:el ESCAPE Cláusula

También puedes usar el ESCAPE cláusula para especificar su propio carácter de escape personalizado. He aquí un ejemplo:

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 |
+----------+----------+

Ejemplo 7:Expresiones numéricas

Este operador se puede utilizar en expresiones numéricas. He aquí un ejemplo:

SELECT 
  1234 NOT LIKE '12%',
  1234 NOT LIKE '12_';

Resultado:

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