mysql like tutorial with syntax
Ta vadnica razlaga ujemanje vzorcev z uporabo operaterja MySQL LIKE:
Ujemanje vzorcev je pomembna značilnost v skoraj vseh programskih jezikih, kot so Java / C # / Python itd., Ki večinoma izkoriščajo uporabo regularnih izrazov za ujemanje vzorcev z določenim vnosom niza.
MySQL ponuja enostaven za uporabo operater LIKE, ki se lahko uporablja za ujemanje vrednosti String z določenimi vzorci in je uporaben za poizvedovanje velikih naborov podatkov.
Kaj se boste naučili:
MySQL LIKE
Sintaksa:
Operator LIKE se uporablja skupaj s stavkom WHERE v poizvedbi SELECT.
V preprosti poizvedbi je sintaksa videti spodaj.
SELECT {column_names} (*) FROM {table_name} WHERE {column_with_string_value} LIKE {match_pattern}
Različne komponente te sintakse so razložene na naslednji način:
- {column_names}: To so imena stolpcev, ki bodo prikazana kot rezultat poizvedbe SELECT. Te vrednosti so lahko * za izbiro vseh stolpcev ali imen posameznih stolpcev, ločenih z vejico.
- {ime_tabele}: To je ime tabele, v kateri je treba izvesti poizvedbo.
- {column_with_string_value}: To je stolpec, katerega vrednosti je treba izvesti glede na navedeni vzorec. Upoštevajte, da se vsaka primerjava izvede v stolpcu, ki ga je mogoče pretvoriti v niz.
- {match_pattern}: To je izraz ujemanja, s katerim je treba primerjati vrednosti stolpcev. Vzorec vzorcev ujemanja je lahko - ‘ SM% ’. To bi se ujemalo z vsemi vrednostmi stolpcev, ki se začnejo s SM. Primer: PAMETNO, VONJ, DIM itd.
Podobno kot pri tej poizvedbi se lahko operater LIKE uporablja tudi pri zapletenih poizvedbah z JOINS itd., Saj je LIKE samo operater primerjave in se lahko uporablja povsod, kjer je možna primerjava vrednosti stolpca.
Opomba: Podobno kot LIKE lahko uporabimo tudi njegovo negirano različico, ki je ‘NOT LIKE’. V tem primeru bodo poizvedbe z operatorjem ‘NOT LIKE’ namesto vrnitve rezultatov ujemanja vrnile rezultate, ki se ne ujemajo.
Vzorci ujemanja MySQL
LIKE Operator se lahko uporablja skupaj z dvema vrstama vzorcev. Ti so navedeni v spodnji tabeli:
Vzorec | |
---|---|
% (Odstotek) | Ujemanje poljubnega števila znakov (vključno z nobenim znakom) |
_ (Podčrtaj) | Ujema se z enim samim znakom |
Zdaj bomo videli nekaj primerov z uporabo obeh vzorcev.
% Vzorec ujemanja
Vzorec% se uporablja, kadar želite poiskati 0 ali več znakov po ali pred njegovo umestitvijo.
Na primer: če želite ujemati niz 'it' iz stolpca z imeni zaposlenih. Recimo, da obstajajo imena, kot so - Amit, Anchit, Arpit, Nikita, Smith itd. Vidimo lahko, da imajo vsa imena podniz 'it'. Toda njihovo pozicioniranje je drugačno.
Recimo, da je ime stolpca imena in ime tabele je študentska imena.
Za izpolnitev baze podatkov uporabite naslednje vzorčne skripte za ustvarjanje podatkov:
CREATE TABLE student_names (name VARCHAR(100)); INSERT INTO student_names VALUES('Amit'),('Ankit'),('Smith'),('Nikita'),('Mohit');
Poglejmo, kako lahko uporabimo vzorec% Match.
SELECT * FROM student_names WHERE name LIKE '%it%'
Izhod:
ime |
---|
Amit |
Ankit |
Smith |
Nikita |
Mohit |
To zdaj pomeni, da se lahko ujema z nizom, ki ima podniz 'it' na katerem koli mestu, pred in po ujemanju pa je lahko poljubno število znakov. Vidite lahko, da se vsa ujemajoča se imena vrnejo kot izhod.
Ponovno napišite poizvedbo, da se bodo ujemala samo tista imena, ki se končajo s podnizom »it«.
SELECT * FROM student_names WHERE name LIKE '%it'
Tu smo torej odstranili zadnji znak '%' in niz 'it' postavili na konec. Ta vzorec bi dovolil poljubno število znakov pred 'it', vendar bi se niz moral končati s podnizom 'it'.
Rezultat zgornje poizvedbe:
ime |
---|
Amit |
Ankit |
Mohit |
Opomba: Tu je pomembno opozoriti, da vzorec, ki je omenjen z uporabo znaka '%', ne razlikuje med velikimi in malimi črkami. Torej, za zgornji primer bi namesto '% it' lahko uporabili '% IT' ali '% It', rezultat bi še vedno ostal enak.
_Ustreli vzorec
Oglejmo si zdaj, kako lahko uporabimo vzorec ujemanja '_'. Vemo, da »_« dovoljuje natančno en znak.
Recimo, da želimo poizvedovati po vseh 5 črkovnih imenih iz iste tabele (imena študentov).
Za uporabo ujemanja vzorcev '_' smo v tem primeru določili pet _ (podčrtaj) skupaj z LIKE Pattern, ki se bo ujemalo samo z imeni, ki so dolgi 5 znakov.
SELECT * FROM student_names WHERE name LIKE '_____'
Izhod:
ime |
---|
Ankit |
Mohit |
Smith |
Poglejmo še en primer. Recimo, da želimo najti vseh 5 črkovnih imen, ki se končajo s podnizom 'it'
SELECT * FROM student_names WHERE name LIKE '___it'
Tu smo uporabili 3 '_' (podčrtaji) in dejanski podniz, ki ga je treba uskladiti.
Izhod:
ime |
---|
Ankit |
Mohit |
Smith |
Kombiniranje% And _ Pattern Matcher
V tem poglavju bomo razpravljali o tem, kako lahko skupaj povežemo ujemanje% in _ vzorca.
vprašanja za razgovore o mavenu in jenkinu
Recimo, da želimo najti vsa imena, ki imajo podniz 'it' in imajo lahko natančno 2 znaka za besedo 'it'
SELECT * FROM student_names WHERE name LIKE '%it_'
Tu smo združili vzorce% in _ ujemanja, da bi našli natančno ujemanje.
Izhod:
ime |
---|
Smith |
Nikita |
Uporaba NOT LIKE
NOT LIKE je natančna negacija vrnitve operaterja LIKE. vrnil bo vse zapise / vrstice, ki se ne ujemajo z izrazom match-match.
Primer: Recimo, da želimo najti vsa imena, ki niso dolga 4 znake.
SELECT * FROM student_names WHERE name NOT LIKE '____'
Izhod:
ime |
---|
Ankit |
Smith |
Nikita |
Mohit |
Kot vidite v zgornjem izhodu, vrne samo tista imena, ki niso dolga 4 znake.
Uporaba MySQL LIKE z znakom ESCAPE
Tu bomo videli, kako lahko uporabimo znake ESCAPE skupaj z ujemanjem vzorcev.
Recimo, da imamo v hipotetični situaciji imena, ki dejansko vsebujejo znake% in _ in jih želimo najti, potem se moramo dejansko ujemati z% & _. To lahko dosežemo z uporabo pobegljivega znaka.
Opomba: Privzeta vrednost ubežnega znaka je '' (povratna poševnica)
V tabele z imeni študentov dodajte nekaj podatkov, ki vsebujejo imena z znakoma% in _.
INSERT INTO student_names VALUES('Darre%n'),('Julia_Roberts'),('Dane_Sherman%');
Spodaj je nekaj primerov, kako to bolje razumeti.
# 1) Poiščite vsa imena, ki imajo znak%.
SELECT * FROM student_names WHERE name LIKE '%\%%'
Izhod:
ime |
---|
Darre% n |
Dane_Sherman% |
#two) Poiščite vsa imena, ki imajo znak _
kakšen je varnostni ključ na usmerjevalniku
SELECT * FROM student_names WHERE name LIKE '%\_%'
Izhod:
ime |
---|
Julia_Roberts |
Dane_Sherman% |
V obeh zgornjih primerih lahko vidite, da smo uporabili ubežni znak, da omenimo znaka% in _ - tj. Za ujemanje znaka% smo uporabili ubežni znak pred znakom% - tj. Kot '\%'
Uporaba pobegljivega lika po lastni izbiri
Zdaj poskusimo razširiti prejšnji primer.
MySQL vam omogoča, da določite svoj lastni znak ESCAPE, ki naj ga MySQL uporablja med izvajanjem iskanja z ujemanjem vzorcev.
Poskusimo posodobiti znak Escape na '!' Namesto na privzeto vrednost ''
SELECT * FROM student_names WHERE name LIKE '%!_%' ESCAPE '!'
Izhod:
ime |
---|
Julia_Roberts |
Dane_Sherman% |
V zgornjem primeru smo znak za pobeg preglasili na '!' In ga uporabili v ujemanju vzorcev '%! _%' - kjer želimo v imenu ujemati znak '_'.
Pogosto zastavljena vprašanja
V # 1) Kaj pomeni %% v SQL?
Odgovor: '%%' se ne bo ujemal z ničemer v določenem. To ustreza samo znaku 1%. Če se želite ujemati s samim znakom '%' v vrednosti stolpca, ga lahko uporabite z ubežnim znakom, ki ima privzeto vrednost '.
Denimo, da se želite ujemati z vrednostjo stolpca z znakom '%', lahko ujemate vzorec kot - LIKE '% %%' (pred srednjim odstotkom (%) opazite dodatno poševnico nazaj.
V # 2) Kaj je nadomestni znak v MySQL?
Odgovor: MySQL LIKE Operator deluje z dvema nadomestnima znakoma v MySQL, da doseže različne načine ujemanja vzorcev.
To so:
- % - To bi se ujemalo s poljubnim številom znakov (vključno z nič)
- _ - To bi se ujemalo z natančno enim znakom
V # 3) Kako v MySQL napišem poizvedbo LIKE?
Odgovor: LIKE je preprost operator, ki se običajno uporablja skupaj s stavkom WHERE v poizvedbi SELECT. Uporablja se za ujemanje vrednosti stolpcev z določenim vzorcem.
Primer: Recimo, da obstaja tabela s podatki_zaposlenih in ima stolpec z naslovom, ki vsebuje hišno številko, ime ulice itd. Želite izvedeti vse zaposlene, katerih ulica je za naslov opredeljena kot 'Oxford Lane'.
Za pisanje take poizvedbe lahko uporabimo operater LIKE.
SELECT * FROM employee_details WHERE address LIKE '%Oxford Lane%'
Prosimo, upoštevajte, da vzorci niza so ne razlikuje med velikimi in malimi črkami medtem ko se ujema z navedenim izrazom ujemanja.
V # 4) Kako določiti drugačen znak Escape skupaj z operaterjem LIKE?
Odgovor: MySQL ponuja način določanja Escape znaka po meri, ki bi preglasil privzeti znak, tj.
Tu je primer, ki bi ubežni znak spremenil v '!' Za izvajanje poizvedbe.
SELECT * FROM employee_details WHERE address LIKE '%!_%' ESCAPE '!'
V zgornji poizvedbi smo kot ubežni znak omenili »!« In ga uporabili v izrazu ujemanja.
V # 5) Kako najti dejanski znak% ali _ z uporabo LIKE operaterja?
Odgovor: Znaka, kot sta% in _, sta posebna nadomestna znaka, ki ju je treba dejansko ujemati kot del niza.
Privzeti ubežni znak je '' in ga je treba uporabiti tik pred omembo nadomestnega znaka.
Recimo, da želimo ujemati znak '_' z dano vrednostjo stolpca, potem lahko izraz ujemanja zapišemo kot - KOT »% _%«
Zaključek
V tej vadnici smo spoznali različne načine, na katere lahko uporabimo operator LIKE (ali zavrnjeno različico, tj. NE LIKE).
Razpravljali smo tudi o podprtih nadomestnih znakih, tj.
Operator LIKE je zmogljiva funkcionalnost, ki jo ponuja MySQL in se običajno uporablja za filtriranje zapisov med poizvedovanjem po velikih naborih podatkov.
Priporočeno branje
- Vadnica za ustvarjanje pogleda MySQL s primeri kode
- MySQL UNION - Izčrpna vadnica s primeri Unije
- MySQL Vodič za ustvarjanje tabel s primeri
- MySQL Vstavi v tabelo - Vstavi sintakso in primere izjave
- Sintaksa ukaza Unix Cat, možnosti s primeri
- Vadnica za C # Regex: Kaj je regularni izraz za C #
- Vadnica za regularne izraze C ++: Regularni izrazi v jeziku C ++ z primeri
- Vadnica Java Regex s primeri rednega izražanja