sql >> Database teknologi >  >> RDS >> Mysql

Hvordan NOT LIKE virker i MySQL

I MySQL kan du bruge NOT LIKE at udføre en negation af LIKE operatør. Med andre ord NOT LIKE returnerer det modsatte resultat til LIKE .

Hvis strengen matcher det angivne mønster, er resultatet 0 , ellers er det 1 .

Mønsteret behøver ikke nødvendigvis at være en bogstavelig streng. Denne funktion kan bruges med strengudtryk og tabelkolonner.

Syntaks

Syntaksen ser sådan ud:

expr NOT LIKE pat [ESCAPE 'escape_char']

Hvor expr er inputstrengen og pat er det mønster, som du tester strengen for.

Den valgfri ESCAPE klausul giver dig mulighed for at angive et escape-tegn. Standard escape-tegnet er \ , så du kan udelade denne klausul, hvis du ikke har brug for at ændre denne.

Denne operator svarer til at gøre følgende:

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

Eksempel 1 – Grundlæggende brug

Her er et eksempel på, hvordan du bruger denne operator i en SELECT erklæring:

SELECT 'Charlie' NOT LIKE 'Char%';

Resultat:

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

I dette tilfælde er returværdien 0 hvilket betyder, at inputstrengen gjorde faktisk matche mønsteret.

Eksempel 2 – Sammenlignet med LIKE

Her sammenlignes det med LIKE :

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

Resultat:

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

Eksempel 3 – En ækvivalent syntaks

Som nævnt NOT LIKE svarer til at bruge NOT logisk operator mod LIKE operatør. Her er hvad jeg mener:

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

Resultat:

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

Eksempel 4 – Et databaseeksempel

LIKE operator bruges ofte i en WHERE klausul af en SELECT sætning, når du forespørger i en database. Derfor NOT LIKE kan bruges på samme måde.

Når vi bruger NOT LIKE på denne måde indsnævrer det resultaterne til kun de poster, der ikke match, men vi ser de faktiske resultater (ikke kun en 1). eller 0 ).

Her er et eksempel på, hvordan vi kan bruge denne operator i en databaseforespørgsel:

SELECT ArtistId, ArtistName
FROM Artists
WHERE ArtistName NOT LIKE 'B%';

Resultat:

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

I dette tilfælde var det en simpel forespørgsel, der returnerer alle kunstnere, hvis navne ikke start med bogstavet B .

Her er den fulde liste over kunstnere i tabellen:

SELECT ArtistId, ArtistName
FROM Artists;

Resultat:

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

Så hvis vi fjerner NOT (dvs. vi bruger bare LIKE ) får vi dette resultat:

SELECT ArtistId, ArtistName
FROM Artists
WHERE ArtistName LIKE 'B%';

Resultat:

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

Eksempel 5 – Undslippe med omvendt skråstreg

Omvendt skråstreg (\ ) kan bruges til at undslippe alle jokertegnene (_ og % ). Her er et eksempel på en sådan søgning med og uden escape-tegnet:

SELECT 
  'usr+123' NOT LIKE 'usr_123' AS 'Without escape',
  'usr+123' NOT LIKE 'usr\_123' AS 'With escape';

Resultat:

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

Eksempel 6 – ESCAPE Klausul

Du kan også bruge ESCAPE klausul for at specificere dit eget tilpassede escape-karakter. Her er et eksempel:

SELECT 
  'usr_123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 1',
  'usr+123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 2';

Resultat:

+----------+----------+
| String 1 | String 2 |
+----------+----------+
|        0 |        1 |
+----------+----------+

Eksempel 7 – Numeriske udtryk

Denne operator kan bruges på numeriske udtryk. Her er et eksempel:

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

Resultat:

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

  1. En introduktion til TimescaleDB

  2. Dårlig standby

  3. Alle nyttige 11g Dynamic Performance Views

  4. Skal arrangere medarbejdernavne i henhold til deres by kolonnemæssigt