Výukový program pre zástupné znaky MySQL: Like, NOT Like, Escape, (%), (_)

Obsah:

Anonim

Čo sú zástupné znaky MySQL?

Zástupné znaky MySQL sú znaky, ktoré pomáhajú vyhľadávať údaje zodpovedajúce zložitým kritériám. Zástupné znaky sa používajú v spojení s operátorom LIKE porovnania alebo s operátorom NOT LIKE.

Prečo používať WildCards?

Ak ste oboznámení s používaním jazyka SQL, môžete si myslieť, že môžete vyhľadávať akékoľvek zložité údaje pomocou klauzúl SELECT a WHERE. Prečo potom používať zástupné znaky?

Predtým, ako odpovieme na túto otázku, pozrime sa na príklad. Predpokladajme, že marketingové oddelenie videotéky Myflix uskutočnilo marketingové akcie v meste Texas a chce získať spätnú väzbu o počte členov

ktorý je registrovaný z Texasu, môžete na získanie požadovaných informácií použiť nasledujúci príkaz SELECT spolu s klauzulou WHERE.

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

Ako vidíte z vyššie uvedeného dotazu, doložka „WHERE“ sa stáva zložitou. Použitie zástupných znakov však zjednodušuje dopyt, pretože môžeme použiť niečo také jednoduché, ako je skript zobrazený nižšie.

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

Stručne povedané, zástupné znaky nám umožňujú vyvinúť výkonné vyhľadávače do našich aplikácií založených na dátach.

Typy zástupných znakov

% percento

% sa percentuálny znak používa na zadanie vzoru s nulou (0) alebo viac znakov . Má nasledujúcu základnú syntax.

SELECT statements… WHERE fieldname LIKE 'xxx%';

TU

  • „Príkaz SELECT ...“ je štandardný príkaz SQL SELECT.
  • „WHERE“ je kľúčové slovo použité na použitie filtra.
  • „LIKE“ je operátor porovnania, ktorý sa používa v spojení so zástupnými znakmi
  • „xxx“ je ľubovoľný zadaný počiatočný vzor, ​​napríklad jeden znak alebo viac, a „%“ zodpovedá ľubovoľnému počtu znakov začínajúcich od nuly (0).

Aby sme plne ocenili vyššie uvedené tvrdenie, pozrime sa na praktický príklad

Predpokladajme, že chceme dostať všetky filmy, ktoré majú v názve slovo „kód“, by sme použili percentuálny zástupný znak na vykonanie zhody vzorov na oboch stranách slova „kód“. Ďalej je uvedený príkaz SQL, ktorým je možné dosiahnuť požadované výsledky.

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

Vykonanie vyššie uvedeného skriptu v pracovnom stole MySQL proti myflixdb nám poskytne výsledky uvedené nižšie.

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

Všimnite si, že aj keď sa hľadané kľúčové slovo „kód“ objaví na začiatku alebo na konci názvu, v našej množine výsledkov sa stále vráti. Je to tak preto, lebo náš kód obsahuje na začiatku ľubovoľný počet znakov, potom sa zhoduje so vzorom „kód“, za ktorým nasleduje ľubovoľný počet znakov na konci.

Upravme teraz náš skript vyššie tak, aby obsahoval zástupný znak percent na začiatku iba kritérií vyhľadávania.

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

Vykonanie vyššie uvedeného skriptu v pracovnom stole MySQL proti myflixdb nám poskytne výsledky uvedené nižšie.

 
movie_id title director year_released category_id
7 Davinci Code NULL NULL 6

Všimnite si, že z databázy bol vrátený iba jeden záznam. Je to tak preto, lebo náš kód zodpovedá ľubovoľnému počtu znakov na začiatku názvu filmu a získava iba záznamy, ktoré končia vzorom „kód“.

Poďme teraz presunúť percentuálny zástupný znak na koniec zadaného vzoru, ktorý sa má zhodovať. Upravený skript je uvedený nižšie.

SELECT * FROM movies WHERE title LIKE 'code%';
Vykonanie vyššie uvedeného skriptu v pracovnom stole MySQL proti myflixdb nám poskytne výsledky uvedené nižšie.
 
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL

Všimnite si, že z databázy bol vrátený iba jeden záznam. Je to tak preto, lebo náš kód sa zhoduje so všetkými názvami, ktoré sa začínajú vzorom „kód“, za ktorým nasleduje ľubovoľný počet znakov.

_ zástupný znak podčiarknutia

Zástupný znak podčiarknutia sa používa na priradenie presne jedného znaku . Predpokladajme, že chceme vyhľadať všetky filmy, ktoré vyšli v rokoch 200x, kde x je presne jeden znak, ktorý by mohol mať akúkoľvek hodnotu. Použili by sme na to zástupnú divokú kartu. Skript uvedený nižšie vyberie všetky filmy, ktoré boli vydané v roku „200x“

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

Vykonanie vyššie uvedeného skriptu v pracovnom stole MySQL proti myflixdb nám poskytne výsledky uvedené nižšie.

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

Všimnite si, že v našej výsledkovej sade boli vrátené iba filmy, ktoré majú 200 znakov ľubovoľnej postavy v roku vydania poľa. Je to tak preto, lebo zástupný znak podčiarknutia sa zhodoval so vzorom 200, za ktorým nasledoval akýkoľvek jeden znak

Nie ako

NOT logický operátor možno použiť spolu so zástupnými znakmi na vrátenie riadkov, ktoré sa nezhodujú so zadaným vzorom.

Predpokladajme, že chceme získať filmy, ktoré neboli vydané v roku 200x. Na získanie našich výsledkov by sme použili NOT logický operátor spolu so zástupným znakom podčiarknutia. Nižšie je uvedený skript, ktorý to robí.

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

Všimnite si, že v našej výsledkovej sade boli vrátené iba filmy, ktoré sa v uvedenom roku nezačnú číslom 200. Je to tak preto, lebo sme pri hľadaní zástupných znakov použili operátor NOT logický.

Únikové slovo.

Kľúčové slovo ESCAPE sa používa na únik zo znakov zodpovedajúcich vzorom, ako napríklad (%) percento a podčiarknutie (_), ak tvoria súčasť údajov.

Predpokladajme, že chceme skontrolovať reťazec „67%“, ktorý môžeme použiť;

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

Ak chceme vyhľadať film „67% vinný“, môžeme na to použiť nižšie uvedený skript.

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

Všimnite si dvojité " %% " v klauzule LIKE, prvé červené " % " je považované za súčasť reťazca, ktorý sa má vyhľadať. Druhá sa používa na priradenie ľubovoľného počtu nasledujúcich znakov.

Rovnaký dotaz bude fungovať, aj keď použijeme niečo ako

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

Zhrnutie

  • Páči sa mi & zástupné znaky výkonné nástroje, ktoré pomáhajú vyhľadávať údaje zodpovedajúce zložitým vzorom.
  • Existuje niekoľko zástupných znakov, ktoré okrem iného obsahujú percentuálny podiel, podčiarknutie a charlist (nepodporuje ich MySQL).
  • Zástupný znak percenta sa používa na priradenie ľubovoľného počtu znakov od nuly (0) a viac.
  • Zástupný znak podčiarknutia sa používa na priradenie presne jedného znaku.