MySQL Tutorial voor jokertekens: Like, NOT Like, Escape, ( % ), ( _ )

Wat zijn MySQL Wildcards?

MySQL wildcards zijn tekens die helpen bij het zoeken naar gegevens die voldoen aan complexe criteria. Wildcards worden gebruikt in combinatie met de LIKE-vergelijkingsoperator of met de NOT LIKE-vergelijkingsoperator.

Waarom WildCards gebruiken?

Als u bekend bent met het gebruik van SQL, denkt u misschien dat u complexe gegevens kunt zoeken met behulp van de SELECT- en WHERE-component. Waarom gebruikt u dan Wildcards?

Voordat we die vraag beantwoorden, laten we eens naar een voorbeeld kijken. Stel dat de marketingafdeling van de Myflix-videobibliotheek marketingpromoties uitvoert in de stad Texas en graag wat feedback wil over het aantal leden

die geregistreerd is vanuit Texas, kunt u de volgende SELECT-instructie gebruiken samen met de WHERE-component om de gewenste informatie te verkrijgen.

SELECT * FROM members WHERE postal_address = 'Austin , TX' OR  postal_address = Dallas , TX OR postal_address = Iola,TX OR postal_adress = Houston ,TX';

Zoals u uit de bovenstaande vraag kunt zien, is de “WHERE-clausule" wordt complex. Het gebruik van jokers vereenvoudigt de query echter, omdat we iets eenvoudigs kunnen gebruiken zoals het onderstaande script.

SELECT * FROM  members  WHERE postal_address  like '% TX';

Kortom, met wildcards kunnen we krachtige zoekmachines ontwikkelen tot onze datagestuurde applicaties.

Soorten wildcards

% het percentage

% Het procentteken wordt gebruikt om een ​​patroon op te geven nul (0) of meer tekens. Het heeft de volgende basis-syntaxis.

SELECT statements... WHERE fieldname LIKE 'xxx%';

HIER

  • "SELECT-instructie…” is de standaard SQL SELECT-opdracht.
  • “WAAR” is het sleutelwoord dat wordt gebruikt om het filter toe te passen.
  • “LIKE” is de vergelijkingsoperator die in combinatie met jokers wordt gebruikt
  • 'xxx' is elk opgegeven startpatroon, zoals één teken of meer, en '%' komt overeen met een willekeurig aantal tekens, beginnend bij nul (0).

Laten we, om de bovenstaande verklaring volledig te begrijpen, eens naar een praktisch voorbeeld kijken

Stel dat we alle films willen hebben die het woord 'code' als onderdeel van de titel hebben, dan zouden we het jokerteken voor percentages gebruiken om een ​​patroonovereenkomst uit te voeren aan beide zijden van het woord 'code'. Hieronder vindt u de SQL-instructie die kan worden gebruikt om de gewenste resultaten te bereiken.

SELECT * FROM movies WHERE title LIKE '%code%';

Voer het bovenstaande script uit in MySQL werkbank tegen de myflixdb geeft ons de onderstaande resultaten.

movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL
7 Davinci Code NULL NULL 6

Merk op dat zelfs als het zoekwoord “code” aan het begin of einde van de titel verschijnt, dit nog steeds in onze resultatenset wordt weergegeven. Dit komt omdat onze code aan het begin een willekeurig aantal tekens bevat en vervolgens overeenkomt met het patroon “code”, gevolgd door een willekeurig aantal tekens aan het einde.

Laten we ons bovenstaande script nu aanpassen om alleen het percentage wildcard aan het begin van de zoekcriteria op te nemen.

SELECT * FROM movies WHERE title LIKE '%code';

Voer het bovenstaande script uit in MySQL workbench tegen de myflixdb geeft ons de onderstaande resultaten.

movie_id title director year_released category_id
7 Davinci Code NULL NULL 6

Merk op dat er slechts één record uit de database is geretourneerd. Dit komt omdat onze code overeenkomt met een willekeurig aantal tekens aan het begin van de filmtitel en alleen records ophaalt die eindigen met het patroon 'code'.

Laten we nu de percentage-wildcard naar het einde van het opgegeven patroon verplaatsen dat moet worden gematcht. Het aangepaste script wordt hieronder weergegeven.

SELECT * FROM movies WHERE title LIKE 'code%';
Voer het bovenstaande script uit in MySQL workbench tegen de myflixdb geeft ons de onderstaande resultaten.
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL

Merk op dat er slechts één record uit de database is geretourneerd. Dit komt omdat onze code overeenkomt met alle titels die beginnen met het patroon ‘code’ gevolgd door een willekeurig aantal tekens.

_ onderstrepingsteken

Hiervoor wordt het onderstrepingsteken gebruikt komen precies overeen met één teken. Laten we aannemen dat we willen zoeken naar alle films die in de jaren 200x zijn uitgebracht, waarbij x precies één personage is dat elke waarde kan hebben. Om dat te bereiken, zouden we de jokerteken onderstreping gebruiken. Het onderstaande script selecteert alle films die zijn uitgebracht in het jaar “200x”

SELECT * FROM movies WHERE year_released LIKE '200_';

Voer het bovenstaande script uit in MySQL workbench tegen de myflixdb geeft ons de onderstaande resultaten.

movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
9 Honey mooners Jhon Shultz 2005 8

Merk op dat alleen films met 200 volgers door een personage in het uitgebrachte veldjaar in onze resultatenset zijn geretourneerd. Dit komt doordat het jokerteken voor het onderstrepingsteken overeenkwam met patroon 200, gevolgd door een enkel teken

Niet zoals

De logische operator NOT kan samen met de jokers worden gebruikt om rijen te retourneren die niet overeenkomen met het opgegeven patroon.

Stel dat we films willen die niet in het jaar 200x zijn uitgebracht. We zouden de logische operator NOT gebruiken samen met de underscore wildcard om onze resultaten te krijgen. Hieronder staat het script dat dat doet.

SELECT * FROM movies WHERE year_released NOT LIKE '200_';

movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
4 Code Name Black Edgar Jimz 2010 NULL
8 Underworld-Awakeninh Michahel Eal 2012 6

Let op, alleen films die niet beginnen met 200 in het jaar van uitgave zijn geretourneerd in onze resultaatset. Dit komt omdat we de logische operator NOT hebben gebruikt in onze wildcard-patroonzoekopdracht.

Escape-trefwoord

Het ESCAPE-sleutelwoord wordt gebruikt ontsnappingspatroon overeenkomende karakters zoals het percentage (%) en het onderstrepingsteken (_) als ze deel uitmaken van de gegevens.

Laten we aannemen dat we willen controleren of we de string “67%” kunnen gebruiken;

LIKE '67#%%' ESCAPE '#';

Als we naar de film “67% Guilty” willen zoeken, kunnen we daarvoor het onderstaande script gebruiken.

SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';

Let op de dubbele “%%” in de LIKE-clausule, de eerste in het rood “%” wordt behandeld als onderdeel van de tekenreeks waarnaar moet worden gezocht. De andere wordt gebruikt om een ​​willekeurig aantal tekens te matchen dat volgt.

Dezelfde zoekopdracht zal ook werken als we zoiets gebruiken als

SELECT * FROM movies WHERE title LIKE '67=%%' ESCAPE '=';

Samenvatting

  • Krachtige hulpmiddelen van Like & Wildcards waarmee u gegevens kunt doorzoeken die complexe patronen matchen.
  • Er zijn een aantal jokertekens die het percentage, het onderstrepingsteken en de charlist bevatten (niet ondersteund door MySQL ) onder andere
  • Het procentuele jokerteken wordt gebruikt om een ​​willekeurig aantal tekens te matchen, beginnend bij nul (0) en meer.
  • Het jokerteken voor het onderstrepingsteken wordt gebruikt om precies één teken overeen te laten komen.