MySQL Výukový program se zástupnými znaky: Líbí se, NELíbí se, Escape, ( % ), ( _ )

Jaké jsou MySQL zástupné znaky?

MySQL Zástupné znaky jsou znaky, které pomáhají vyhledávat data odpovídající složitým kritériím. Zástupné znaky se používají ve spojení s operátorem porovnání LIKE nebo s operátorem porovnání NOT LIKE.

Proč používat WildCards?

Pokud jste obeznámeni s používáním SQL, možná si myslíte, že můžete vyhledávat jakákoli složitá data pomocí klauzule SELECT a WHERE . Proč tedy používat zástupné znaky?

Než na tuto otázku odpovíme, podívejme se na příklad. Předpokládejme, že marketingové oddělení videotéky Myflix provedlo marketingovou propagaci ve městě Texas a chtělo by získat zpětnou vazbu o počtu členů

registrovanou z Texasu, můžete použít následující příkaz SELECT spolu s klauzulí WHERE k získání požadovaných informací.

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

Jak můžete vidět z výše uvedeného dotazu, „klauzule WHERE“ se stává složitým. Použití zástupných znaků však zjednodušuje dotaz, protože můžeme použít něco jednoduchého, jako je skript zobrazený níže.

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

Stručně řečeno, zástupné znaky nám umožňují vyvinout výkonné vyhledávače do našich aplikací založených na datech.

Typy zástupných znaků

% procento

% znak procent se používá k určení vzoru nula (0) nebo více znaků. Má následující základní syntaxi.

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

ZDE

  • "příkaz SELECT…” je standardní příkaz SQL SELECT.
  • „KDE“ je klíčové slovo použité k použití filtru.
  • „LIKE“ je operátor porovnání, který se používá ve spojení se zástupnými znaky
  • 'xxx' je libovolný zadaný počáteční vzor, ​​jako je jeden nebo více znaků a "%" odpovídá libovolnému počtu znaků počínaje nulou (0).

Abychom plně ocenili výše uvedené tvrzení, podívejme se na praktický příklad

Předpokládejme, že chceme získat všechny filmy, které mají v názvu slovo „kód“, použili bychom zástupný znak v procentech k provedení shody vzoru na obou stranách slova „kód“. Níže je uveden příkaz SQL, který lze použít k dosažení požadovaných výsledků.

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

Spuštění výše uvedeného skriptu v MySQL ponk proti myflixdb nám dává výsledky uvedené níže.

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

Všimněte si, že i když se klíčové slovo pro vyhledávání „kód“ objeví na začátku nebo na konci názvu, je stále vráceno v naší sadě výsledků. Důvodem je to, že náš kód obsahuje na začátku libovolný počet znaků a poté odpovídá vzoru „kód“, po kterém následuje libovolný počet znaků na konci.

Upravme nyní náš výše uvedený skript tak, aby obsahoval zástupný znak v procentech pouze na začátku vyhledávacích kritérií.

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

Spuštění výše uvedeného skriptu v MySQL workbench proti myflixdb nám poskytuje výsledky uvedené níže.

movie_id title director year_released category_id
7 Davinci Code NULL NULL 6

Všimněte si, že z databáze byl vrácen pouze jeden záznam. Je to proto, že náš kód odpovídá libovolnému počtu znaků na začátku názvu filmu a získává pouze záznamy, které končí vzorem „kód“.

Posuňme nyní zástupný znak v procentech na konec zadaného vzoru, který má být porovnán. Upravený skript je zobrazen níže.

SELECT * FROM movies WHERE title LIKE 'code%';
Spuštění výše uvedeného skriptu v MySQL workbench proti myflixdb nám poskytuje výsledky uvedené níže.
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL

Všimněte si, že z databáze byl vrácen pouze jeden záznam. Důvodem je, že náš kód se shoduje se všemi názvy, které začínají vzorem „kód“, za kterým následuje libovolný počet znaků.

_ podtržítko zástupný znak

Zástupný znak podtržítka se používá odpovídat přesně jednomu znaku. Předpokládejme, že chceme vyhledat všechny filmy, které byly vydány v letech 200x, kde x je přesně jeden znak, který může mít jakoukoli hodnotu. K tomu bychom použili divokou kartu podtržítka. Níže uvedený scénář vybírá všechny filmy, které byly vydány v roce „200x“

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

Spuštění výše uvedeného skriptu v MySQL workbench proti myflixdb nám poskytuje výsledky uvedené níže.

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

Všimněte si, že do naší sady výsledků byly vráceny pouze filmy, které mají 200 následovníků kterékoli postavy v daném roce. Je to proto, že zástupný znak podtržení se shodoval se vzorem 200 následovaným libovolným jedním znakem

Ne jako

Logický operátor NOT lze použít společně se zástupnými znaky k vrácení řádků, které neodpovídají zadanému vzoru.

Předpokládejme, že chceme získat filmy, které nebyly vydány v roce 200x. K získání výsledků bychom použili logický operátor NOT spolu se zástupným znakem podtržítka. Níže je skript, který to dělá.

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šimněte si, že do naší sady výsledků byly vráceny pouze filmy, které nezačínají číslem 200 v daném roce. Je to proto, že jsme při hledání vzoru zástupných znaků použili logický operátor NOT.

Klíčové slovo Escape

Klíčové slovo ESCAPE se používá k únikové vzory odpovídající znaky například procento (%) a podtržítko (_), pokud tvoří součást dat.

Předpokládejme, že chceme zkontrolovat řetězec „67 %“, který můžeme použít;

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

Pokud chceme vyhledat film „67% vinen“, můžeme k tomu použít níže uvedený scénář.

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

Všimněte si dvojitého „%%“ v klauzuli LIKE, první červeně „%” se považuje za součást hledaného řetězce. Druhý se používá k přiřazení libovolného počtu znaků, které následují.

Stejný dotaz bude také fungovat, pokud použijeme něco podobného

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

Shrnutí

  • Výkonné nástroje Like & Wildcards, které pomáhají vyhledávat data odpovídající složitým vzorům.
  • Existuje řada zástupných znaků, které zahrnují procento, podtržítko a charlist (nepodporuje MySQL ) mezi ostatními
  • Procentuální zástupný znak se používá pro shodu libovolného počtu znaků počínaje nulou (0) a více.
  • Zástupný znak podtržítka se používá pro shodu přesně jednoho znaku.