In MySQL kunt u NOT LIKE
. gebruiken om een negatie van de LIKE
. uit te voeren exploitant. Met andere woorden, NOT LIKE
geeft het tegenovergestelde resultaat terug naar LIKE
.
Als de tekenreeks overeenkomt met het opgegeven patroon, is het resultaat 0
, anders is het 1
.
Het patroon hoeft niet per se een letterlijke tekenreeks te zijn. Deze functie kan worden gebruikt met tekenreeksuitdrukkingen en tabelkolommen.
Syntaxis
De syntaxis gaat als volgt:
expr NOT LIKE pat [ESCAPE 'escape_char']
Waar expr
is de invoerreeks en pat
is het patroon waarvoor u de snaar test.
De optionele ESCAPE
clausule kunt u een escape-teken specificeren. Het standaard escape-teken is \
, dus u kunt deze clausule weglaten als u deze niet hoeft te wijzigen.
Deze operator is het equivalent van het volgende doen:
NOT (expr LIKE pat [ESCAPE 'escape_char'])
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld van het gebruik van deze operator in een SELECT
verklaring:
SELECT 'Charlie' NOT LIKE 'Char%';
Resultaat:
+----------------------------+ | 'Charlie' NOT LIKE 'Char%' | +----------------------------+ | 0 | +----------------------------+
In dit geval is de retourwaarde 0
wat betekent dat de invoerreeks deed echt overeenkomen met het patroon.
Voorbeeld 2 – Vergeleken met LIKE
Hier wordt het vergeleken met LIKE
:
SELECT 'Charlie' LIKE 'Char%' AS 'Like', 'Charlie' NOT LIKE 'Char%' AS 'Not Like';
Resultaat:
+------+----------+ | Like | Not Like | +------+----------+ | 1 | 0 | +------+----------+
Voorbeeld 3 – Een gelijkwaardige syntaxis
Zoals vermeld, NOT LIKE
is het equivalent van het gebruik van de NOT
logische operator tegen de LIKE
exploitant. Dit is wat ik bedoel:
SELECT 'Charlie' NOT LIKE 'Char%' AS 'NOT LIKE syntax', NOT ('Charlie' LIKE 'Char%') AS 'Equivalent syntax';
Resultaat:
+-----------------+-------------------+ | NOT LIKE syntax | Equivalent syntax | +-----------------+-------------------+ | 0 | 0 | +-----------------+-------------------+
Voorbeeld 4 – Een databasevoorbeeld
De LIKE
operator wordt vaak gebruikt binnen een WHERE
clausule van een SELECT
statement bij het opvragen van een database. Daarom NOT LIKE
op dezelfde manier kan worden gebruikt.
Wanneer we NOT LIKE
gebruiken op deze manier worden de resultaten beperkt tot alleen die records die niet match, maar we zien de daadwerkelijke resultaten (niet alleen een 1
of 0
).
Hier is een voorbeeld van hoe we deze operator kunnen gebruiken binnen een databasequery:
SELECT ArtistId, ArtistName FROM Artists WHERE ArtistName NOT LIKE 'B%';
Resultaat:
+----------+------------------------+ | 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 | +----------+------------------------+
In dit geval was het een eenvoudige zoekopdracht die alle artiesten retourneert wiens namen niet begin met de letter B .
Hier is de volledige lijst van artiesten in die tabel:
SELECT ArtistId, ArtistName FROM Artists;
Resultaat:
+----------+------------------------+ | 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 | +----------+------------------------+
Dus als we de NOT
. verwijderen (d.w.z. we gebruiken gewoon LIKE
) krijgen we dit resultaat:
SELECT ArtistId, ArtistName FROM Artists WHERE ArtistName LIKE 'B%';
Resultaat:
+----------+----------------+ | ArtistId | ArtistName | +----------+----------------+ | 4 | Buddy Rich | | 11 | Black Sabbath | | 15 | Birds of Tokyo | | 16 | Bodyjar | +----------+----------------+
Voorbeeld 5 – Ontsnappen met het backslash-teken
Het backslash-teken (\
) kan worden gebruikt om te ontsnappen aan elk van de jokertekens (_
en %
). Hier is een voorbeeld van zo'n zoekopdracht met en zonder het escape-teken:
SELECT 'usr+123' NOT LIKE 'usr_123' AS 'Without escape', 'usr+123' NOT LIKE 'usr\_123' AS 'With escape';
Resultaat:
+----------------+-------------+ | Without escape | With escape | +----------------+-------------+ | 0 | 1 | +----------------+-------------+
Voorbeeld 6 – De ESCAPE
Clausule
U kunt ook de ESCAPE
. gebruiken clausule om uw eigen aangepaste escape-teken op te geven. Hier is een voorbeeld:
SELECT 'usr_123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 1', 'usr+123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 2';
Resultaat:
+----------+----------+ | String 1 | String 2 | +----------+----------+ | 0 | 1 | +----------+----------+
Voorbeeld 7 – Numerieke uitdrukkingen
Deze operator kan worden gebruikt voor numerieke uitdrukkingen. Hier is een voorbeeld:
SELECT 1234 NOT LIKE '12%', 1234 NOT LIKE '12_';
Resultaat:
+---------------------+---------------------+ | 1234 NOT LIKE '12%' | 1234 NOT LIKE '12_' | +---------------------+---------------------+ | 0 | 1 | +---------------------+---------------------+