mysql like tutorial with syntax
Tento tutoriál vysvetľuje porovnávanie vzorov pomocou operátora MySQL LIKE:
Porovnávanie vzorov je dôležitou vlastnosťou takmer vo všetkých programovacích jazykoch, ako sú Java / C # / Python atď., Ktoré väčšinou využívajú použitie regulárnych výrazov na porovnávanie vzorov s daným vstupom reťazca.
MySQL poskytuje ľahko použiteľný operátor s názvom LIKE, ktorý je možné použiť na porovnanie hodnôt String so špecifikovanými vzormi a je užitočný pri vyhľadávaní veľkých súborov údajov.
Čo sa dozviete:
PODOBNÁ MySQL
Syntax:
Operátor LIKE sa používa spolu s klauzulou WHERE v dotaze SELECT.
V jednoduchom dotaze vyzerá syntax nižšie.
SELECT {column_names} (*) FROM {table_name} WHERE {column_with_string_value} LIKE {match_pattern}
Rôzne komponenty tejto syntaxe sú vysvetlené nasledovne:
- {column_names}: Toto sú názvy stĺpcov, ktoré sa majú zobraziť ako výstup dotazu SELECT. Tieto hodnoty môžu byť * pre výber všetkých stĺpcov alebo názvy jednotlivých stĺpcov oddelené čiarkami.
- {table_name}: Toto je názov tabuľky, v ktorej je potrebné vykonať dotaz.
- {column_with_string_value}: Toto je stĺpec, ktorého hodnoty je potrebné vykonať proti uvedenému vzoru. Upozorňujeme, že akékoľvek porovnanie sa vykonáva v stĺpci, ktorý je možné previesť na reťazec.
- {match_pattern}: Toto je výraz zhody, s ktorým je potrebné porovnať hodnoty stĺpcov. Vzorka vzorov zhody môže byť - ‘ SM% “. To by zodpovedalo všetkým hodnotám stĺpca počnúc SM. Príklad: SMART, SMELL, SMOKE atď.
Podobne ako v tomto dotaze, operátor LIKE je možné použiť aj pri zložitých dotazoch s JOINS atď., Pretože LIKE je iba operátor porovnania a je ho možné použiť všade, kde je možné porovnanie hodnôt stĺpcov.
Poznámka: Podobne ako LIKE, môžeme použiť aj jeho negovaný variant, ktorý je ‘NOT LIKE‘. V takom prípade teda namiesto vrátenia výsledkov zhody vrátia dotazy s operátorom „NIE LIKE“ výsledky, ktoré sa nezhodujú.
MySQL zhodné vzory
LIKE Operator možno použiť spolu s 2 typmi vzorov. Sú uvedené v nasledujúcej tabuľke:
Vzor | |
---|---|
% (Percento) | Zhoda ľubovoľného počtu znakov (vrátane žiadneho) |
_ (Podčiarknutie) | Zhoduje sa s jedným znakom |
Teraz uvidíme niekoľko príkladov, ktoré používajú oba vzory.
% Zhoda vzoru
Vzor% sa používa, ak chcete po umiestnení alebo pred jeho umiestnením priradiť 0 alebo viac znakov.
Napríklad: ak chcete priradiť reťazec „it“ zo stĺpca s menami zamestnancov. Predpokladajme, že existujú mená ako - Amit, Anchit, Arpit, Nikita, Smith atď. Vidíme, že všetky mená majú podreťazec „it“. Ich umiestnenie je však odlišné.
Predpokladajme, že názov stĺpca je mien a názov tabuľky je študentské_mená.
Na vyplnenie databázy použite nasledujúce ukážkové skripty na vytváranie údajov:
CREATE TABLE student_names (name VARCHAR(100)); INSERT INTO student_names VALUES('Amit'),('Ankit'),('Smith'),('Nikita'),('Mohit');
Pozrime sa, ako môžeme použiť vzor% zhody.
SELECT * FROM student_names WHERE name LIKE '%it%'
Výkon:
názov |
---|
Amit |
Ankit |
Smith |
Nikita |
Mohit |
To teraz znamená, že sa môže zhodovať s reťazcom, ktorý má podreťazec „it“ na akomkoľvek mieste a pred a po zápase môže byť ľubovoľný počet znakov. Vidíte, že všetky zodpovedajúce mená sa vrátia ako výstup.
Prepíšte dopyt tak, aby sa zhodovali iba tie názvy, ktoré končia podreťazcom „it“.
SELECT * FROM student_names WHERE name LIKE '%it'
Takže sme tu odstránili koncový znak „%“ a na koniec umiestnili reťazec „it“. Tento vzor by umožnil ľubovoľný počet znakov pred reťazcom „it“, ale reťazec by mal končiť podreťazcom „it“.
Výstup vyššie uvedeného dotazu:
názov |
---|
Amit |
Ankit |
Mohit |
Poznámka: Tu je dôležité poznamenať, že vo vzorke uvedenom pomocou znaku „%“ sa nerozlišujú malé a veľké písmená. Takže pre vyššie uvedený príklad by sme namiesto „% it“ mohli použiť „% IT“ alebo „% It“, výstup by stále zostal rovnaký.
_Zodpovedajúci vzor
Poďme sa teraz pozrieť na to, ako môžeme použiť vzor zhody „_“. Vieme, že znak „_“ umožňuje presne jeden znak.
Predpokladajme, že chceme vyhľadať všetky päťpísmenové názvy z tej istej tabuľky (student_names).
Aby sme v tomto prípade použili porovnávač vzorov „_“, zadali sme päť _ (podčiarkovníky) spolu s LIKE Pattern, ktoré sa budú zhodovať iba s názvami, ktoré majú dĺžku 5 znakov.
SELECT * FROM student_names WHERE name LIKE '_____'
Výkon:
názov |
---|
Ankit |
Mohit |
Smith |
Pozrime sa na ďalší príklad. Predpokladajme, že chceme nájsť všetkých 5 písmen, ktoré končia podreťazcom „it“
SELECT * FROM student_names WHERE name LIKE '___it'
Tu sme použili 3 „_“ (podčiarkovníky) a skutočný podreťazec, ktorý je potrebné zhodovať.
Výkon:
názov |
---|
Ankit |
Mohit |
Smith |
Kombinácia porovnávača vzorov% a _
V tejto časti si povieme, ako môžeme priradiť porovnávače vzorov% a _ k sebe.
webové stránky anime na pozeranie anime zadarmo v angličtine dabované
Predpokladajme, že chceme nájsť všetky mená, ktoré majú reťazec „it“ a môžu mať presne 2 znaky za slovom „it“
SELECT * FROM student_names WHERE name LIKE '%it_'
Tu sme skombinovali vzory zhody% aj _, aby sme našli presnú zhodu.
Výkon:
názov |
---|
Smith |
Nikita |
Používanie NIE LIKE
NOT LIKE je presná negácia toho, čo operátor LIKE vráti. tj vráti všetky záznamy / riadky, ktoré sa nezhodujú s výrazom zhody vzoru.
Príklad: Predpokladajme, že chceme nájsť všetky mená, ktoré nemajú 4 znaky.
SELECT * FROM student_names WHERE name NOT LIKE '____'
Výkon:
názov |
---|
Ankit |
Smith |
Nikita |
Mohit |
Vo vyššie uvedenom výstupe vidíte, že vracia iba tie mená, ktoré nemajú 4 znaky.
Používanie MySQL LIKE so znakom ESCAPE
Tu uvidíme, ako môžeme používať znaky ESCAPE spolu s porovnávačom vzorov.
Predpokladajme, že v hypotetickej situácii máme mená, ktoré skutočne obsahujú znaky% a _ a chceme ich nájsť, potom sa musíme skutočne zhodovať s% & _. To sa dá dosiahnuť pomocou únikovej postavy.
Poznámka: Predvolená hodnota únikového znaku je „“ (spätné lomítko)
Pridajte nejaké údaje do tabuliek student_names, ktoré obsahujú mená so znakmi% a _.
INSERT INTO student_names VALUES('Darre%n'),('Julia_Roberts'),('Dane_Sherman%');
Ďalej uvádzame niekoľko príkladov, ako tomu lepšie porozumieť.
# 1) Nájdite všetky mená, ktoré majú znak%.
SELECT * FROM student_names WHERE name LIKE '%\%%'
Výkon:
názov |
---|
Darre% n |
Dane_Sherman% |
#dva) Nájdite všetky mená, ktoré majú znak _
SELECT * FROM student_names WHERE name LIKE '%\_%'
Výkon:
názov |
---|
Julia_Roberts |
Dane_Sherman% |
V obidvoch vyššie uvedených príkladoch vidíte, že sme použili únikový znak na spomenutie znakov% a _ - t. J. Na porovnanie samotného znaku% sme použili únikový znak pred znakom% - teda ako „\%“
Pomocou únikovej postavy podľa vlastného výberu
Teraz sa pokúsime rozšíriť predchádzajúci príklad.
MySQL vám umožňuje určiť svoj vlastný znak ESCAPE, ktorý by mal MySQL používať pri spustení vyhľadávania zodpovedajúceho vzoru.
Skúsme namiesto východiskovej hodnoty „“ aktualizovať znak Escape na „!“
SELECT * FROM student_names WHERE name LIKE '%!_%' ESCAPE '!'
Výkon:
názov |
---|
Julia_Roberts |
Dane_Sherman% |
V uvedenom príklade sme únikový znak prepísali na „!“ A použili sme to isté v porovnávači vzorov „%! _%“ - kde chceme v názve nájsť znak „_“.
často kladené otázky
Otázka 1) Čo znamená %% v SQL?
Ako hráte súbory SWF
Odpoveď: „%%“ sa nebude konkrétne zhodovať s ničím. Je to ekvivalent iba 1% znaku. Ak chcete v hodnote stĺpca nájsť samotný znak „%“, môžete ho použiť s riadiacim znakom, ktorý má predvolenú hodnotu “.
Predpokladajme, že chcete priradiť hodnotu stĺpca, ktorý má znak „%“, môžete napísať zhodu vzoru ako - LIKE „% %%“ (všimnite si spätné lomítko pred znakom stredného percenta (%).
Otázka 2) Čo je zástupný znak v MySQL?
Odpoveď: MySQL LIKE Operator pracuje s 2 zástupnými znakmi v MySQL, aby dosiahol rôzne spôsoby porovnávania vzorov.
Sú to:
- % - To by zodpovedalo ľubovoľnému počtu znakov (vrátane nulového)
- _ - To by zodpovedalo presne jednej postave
Otázka č. 3) Ako napíšem LIKE dotaz v MySQL?
Odpoveď: LIKE je jednoduchý operátor, ktorý sa všeobecne používa spolu s klauzulou WHERE v dotaze SELECT. Používa sa na porovnanie hodnôt stĺpca so zadaným vzorom.
Príklad: Predpokladajme, že existuje tabuľka s podrobnosťami zamestnanca a má stĺpec s názvom adresa, ktorý obsahuje číslo domu, ulicu atď. Chcete zistiť všetkých zamestnancov, ktorí majú ulicu ako svoju adresu definovanú ako „Oxford Lane“.
Na napísanie takéhoto dotazu môžeme použiť operátor LIKE.
SELECT * FROM employee_details WHERE address LIKE '%Oxford Lane%'
Vezmite prosím na vedomie, že reťazcové vzory sú malé a veľké písmená zatiaľ čo sa porovnáva so zadaným výrazom zhody.
Otázka č. 4) Ako určiť iný znak Escape spolu s operátorom LIKE?
Odpoveď: MySQL poskytuje spôsob, ako určiť vlastný znak Escape, ktorý by prepísal predvolený, tj
Tu je príklad, ktorý by zmenil riadiaci znak na vykonanie dotazu na „!“.
SELECT * FROM employee_details WHERE address LIKE '%!_%' ESCAPE '!'
Vo vyššie uvedenom dotaze sme ako únikový znak spomenuli znak „!“, Ktorý sme vo výraze zhody použili rovnako.
Otázka č. 5) Ako priradiť skutočný znak% alebo _ pomocou operátora LIKE?
Odpoveď: Znaky ako% a _ sú špeciálne zástupné znaky, ktoré by v prípade potreby porovnania ako časti reťazca mali uniknúť.
Predvolený riadiaci znak je „“ a mal by sa použiť tesne pred uvedením zástupného znaku.
Predpokladajme, že chceme priradiť znak „_“ k danej hodnote stĺpca, potom môžeme napísať výraz zhody ako - PÁČI SA MI TO '%\_%'
Záver
V tomto tutoriáli sme sa dozvedeli o rôznych spôsoboch, ako môžeme používať operátor LIKE (alebo negovanú verziu, t. J. NOT LIKE).
Diskutovali sme tiež o podporovaných zástupných znakoch, tj. _ A%, a o tom, ako im možno uniknúť, ak musia byť súčasťou reťazca, aby ho bolo možné vyhľadať / priradiť.
Operátor LIKE je výkonná funkcionalita, ktorú poskytuje MySQL, a zvyčajne sa používa na filtrovanie záznamov pri vyhľadávaní veľkých súborov údajov.
Odporúčané čítanie
- Výukový program na vytváranie zobrazení MySQL s príkladmi kódu
- MySQL UNION - komplexný návod s príkladmi Únie
- MySQL Vytvorenie výučby tabuľky s príkladmi
- MySQL Vložiť do tabuľky - Vložiť syntax príkazov a príklady
- Syntax príkazov Unix Cat, možnosti s príkladmi
- Výukový program C # Regex: Čo je to C # regulárny výraz
- Výukový program pre regex v jazyku C ++: Regulárne výrazy v jazyku C ++ s príkladmi
- Výukový program Java Regex s príkladmi regulárnych výrazov