mysql like tutorial with syntax
Denne opplæringen forklarer mønstermatching ved hjelp av MySQL LIKE-operatøren:
Mønstermatching er en viktig funksjon i nesten alle programmeringsspråk som - Java / C # / Python etc, som for det meste utnytter bruken av Regular Expressions for mønstermatching mot en gitt strenginngang.
MySQL gir en brukervennlig operatør kalt LIKE, som kan brukes til å matche strengverdiene mot spesifiserte mønstre og er nyttige for spørring av store datasett.
Hva du vil lære:
MySQL LIKE
Syntaks:
LIKE-operatøren brukes sammen med WHERE-setningen i et SELECT-spørsmål.
I et enkelt spørsmål ser syntaksen ut som nedenfor.
SELECT {column_names} (*) FROM {table_name} WHERE {column_with_string_value} LIKE {match_pattern}
Ulike komponenter i denne syntaksen forklares som følger:
- {column_names}: Dette er kolonnenavnene som skal vises som utdata fra SELECT-spørringen. Disse verdiene kan være * for å velge alle kolonnene eller kommaseparerte navn på individuelle kolonner.
- {table_name}: Dette er navnet på tabellen der spørringen må utføres.
- {column_with_string_value}: Dette er kolonnen hvis verdier må utføres mot det angitte mønsteret. Vær oppmerksom på at enhver sammenligning gjøres på en kolonne som kan konverteres til streng.
- {match_pattern}: Dette er samsvarsuttrykket som kolonneverdiene må sammenlignes med. Et utvalg av matchmønstre kan være - ‘ SM% '. Dette vil matche alle kolonneverdier som begynner med SM. Eksempel: SMART, LUKT, RØYK osv.
I likhet med dette spørsmålet, kan LIKE-operatoren brukes selv med komplekse spørsmål med JOINS, etc, da LIKE bare er en sammenligningsoperator og kan brukes der sammenligning av kolonneverdi er mulig.
Merk: I likhet med LIKE kan vi også bruke den negerte varianten, som er ‘NOT LIKE’. Så i dette tilfellet, i stedet for å returnere samsvarende resultater, vil spørsmålene med 'NOT LIKE' -operatøren returnere resultater som ikke samsvarer.
MySQL Match Patterns
LIKE Operator kan brukes sammen med to typer mønstre. Disse er vervet i tabellen nedenfor:
Mønster | |
---|---|
% (Prosent) | Match et hvilket som helst antall tegn (inkludert ingen tegn i det hele tatt) |
_ (Understrek) | Matcher et enkelt tegn |
Nå vil vi se noen eksempler som bruker begge mønstrene.
% Match mønster
% mønster brukes når du vil matche 0 eller flere tegn etter eller før plasseringen.
For eksempel: hvis du vil matche en streng ‘it’ fra en kolonne som har ansattes navn. Anta at det er navn som - Amit, Anchit, Arpit, Nikita, Smith, etc. Vi kan se at alle navnene har 'it' -strengen. Men deres posisjonering er annerledes.
Anta at kolonnenavnet er navn og navnet på tabellen er studentnavn.
Bruk følgende eksempler på dataopprettingsskript for å fylle ut databasen:
CREATE TABLE student_names (name VARCHAR(100)); INSERT INTO student_names VALUES('Amit'),('Ankit'),('Smith'),('Nikita'),('Mohit');
La oss se hvordan vi kan bruke% Match-mønsteret.
SELECT * FROM student_names WHERE name LIKE '%it%'
Produksjon:
Navn |
---|
Amit |
Ankit |
Smith |
Nikita |
Mohit |
Nå, hva dette betyr er at den kan matche en streng som har 'it' -strengen på et hvilket som helst sted, og det kan være et hvilket som helst antall tegn før og etter kampen. Du kan se at alle samsvarende navn returneres som utdata.
Skriv om spørsmålet for å få akkurat de navnene som slutter med 'it' -strengen.
SELECT * FROM student_names WHERE name LIKE '%it'
Så her har vi fjernet det etterfølgende ‘%’ -tegnet og plassert ‘it’-strengen på slutten. Dette mønsteret tillater et hvilket som helst antall tegn før 'it', men strengen skal ende med 'it' -strengen.
Resultat av ovennevnte spørring:
Navn |
---|
Amit |
Ankit |
Mohit |
Merk: Det er viktig å merke seg her at mønsteret som er nevnt ved bruk av '%' -tegnet, ikke skiller mellom store og små bokstaver. Så for eksemplet ovenfor, i stedet for ‘% it’ kunne vi ha brukt ‘% IT’ eller ‘% It’, ville produksjonen fortsatt ha vært den samme.
_Match mønster
La oss nå ta en titt på hvordan vi kan bruke '_' matchmønsteret. Vi vet at ‘_’ tillater nøyaktig ett tegn.
Anta at vi vil spørre alle de fem bokstavsnavnene fra samme tabell (studentnavn).
For å bruke '_' mønstermatcher i dette tilfellet, har vi spesifisert fem _ (Underscores) sammen med LIKE Pattern som bare vil matche de navnene som er 5 tegn lange.
SELECT * FROM student_names WHERE name LIKE '_____'
Produksjon:
Navn |
---|
Ankit |
Mohit |
Smith |
La oss se på et annet eksempel. Anta at vi vil finne alle 5 bokstavsnavnene som slutter med understrengen ‘it’
SELECT * FROM student_names WHERE name LIKE '___it'
Her har vi brukt 3 ‘_’ (understreker) og den faktiske undergrunnen som må matches.
Produksjon:
Navn |
---|
Ankit |
Mohit |
Smith |
Kombinere% og _ mønster matcher
I denne delen vil vi diskutere hvordan vi kan matche% og _ mønster matcher sammen.
qa manager intervju spørsmål svar pdf
Anta at vi vil finne alle navnene som har 'it' -strenging og kan ha nøyaktig 2 tegn etter ordet 'it'
SELECT * FROM student_names WHERE name LIKE '%it_'
Her har vi kombinert både% og _ matchmønstre for å finne nøyaktig samsvar.
Produksjon:
Navn |
---|
Smith |
Nikita |
Bruker IKKE SOM
NOT LIKE er den eksakte negasjonen av det som LIKE-operatøren returnerer. dvs. det vil returnere alle postene / radene som ikke samsvarer med mønster-match-uttrykket.
Eksempel: Anta at vi vil finne alle navnene som ikke er 4 tegn lange.
SELECT * FROM student_names WHERE name NOT LIKE '____'
Produksjon:
Navn |
---|
Ankit |
Smith |
Nikita |
Mohit |
Du kan se i ovennevnte utgang, den returnerer bare de navnene som ikke er 4 tegn lange.
Bruke MySQL LIKE With ESCAPE Character
Her vil vi se hvordan vi kan bruke ESCAPE-tegn sammen med mønstermatcheren.
Anta at i en hypotetisk situasjon har vi navn som faktisk inneholder% og _ tegn, og vi vil finne disse navnene, så må vi faktisk matche% & _. Dette kan oppnås ved å bruke en rømningskarakter.
Merk: Standardverdien for rømningstegnet er ‘’ (tilbakeslag)
Legg til noen data i studentnavnnavnene som inneholder navn med% og _ tegn.
INSERT INTO student_names VALUES('Darre%n'),('Julia_Roberts'),('Dane_Sherman%');
Nedenfor er noen eksempler for å forstå dette bedre.
#1) Finn alle navnene som har% -tegn.
SELECT * FROM student_names WHERE name LIKE '%\%%'
Produksjon:
Navn |
---|
Darre% n |
Dane_Sherman% |
#to) Finn alle navnene som har et _-tegn
SELECT * FROM student_names WHERE name LIKE '%\_%'
Produksjon:
Navn |
---|
Julia_Roberts |
Dane_Sherman% |
I begge eksemplene ovenfor kan du se at vi har brukt et escape-tegn for å nevne% og _ tegnene - dvs. for å matche et% -tegn i seg selv har vi brukt et escape-tegn før% -tegnet - dvs. som '\%'
Bruke en rømningskarakter etter eget valg
La oss nå prøve å utvide det forrige eksemplet.
MySQL lar deg spesifisere ditt eget ESCAPE-tegn som MySQL skal bruke mens du kjører søket på mønstermatching.
La oss prøve å oppdatere Escape-tegnet til '!' I stedet for standardverdien ''
SELECT * FROM student_names WHERE name LIKE '%!_%' ESCAPE '!'
Produksjon:
Navn |
---|
Julia_Roberts |
Dane_Sherman% |
I eksemplet ovenfor har vi overstyrt flukttegnet til ‘!’ Og brukt det samme i mønstermatcheren ‘%! _%’ - der vi ønsker å matche et ‘_’ tegn i navnet.
ofte stilte spørsmål
Sp # 1) Hva betyr %% i SQL?
Svar: ‘%%’ kommer ikke til å matche noe spesifikt. Det tilsvarer bare å ha 1% karakter. Hvis du vil matche “%” -tegnet i kolonneverdien, kan du bruke det med et escape-tegn som har standardverdien '.
Anta at du vil matche en kolonneverdi som har et '%' -tegn, du kan skrive mønstermatch som - LIKE '% %%' (legg merke til et ekstra tilbakeslag før midten av prosentandelen (%).
Q # 2) Hva er et jokertegn i MySQL?
Svar: MySQL LIKE Operator jobber med to jokertegn i MySQL for å oppnå forskjellige måter å matche mønster på.
Disse er:
- % - Dette vil matche et hvilket som helst antall tegn (inkludert null)
- _ - Dette ville matche nøyaktig ett tegn
Sp # 3) Hvordan skriver jeg et LIKE-spørsmål i MySQL?
Svar: LIKE er en enkel operatør som vanligvis brukes sammen med WHERE-setningen i et SELECT-spørsmål. Den brukes til å matche kolonneverdiene mot det angitte mønsteret.
Eksempel: Anta at det er en tabell med ansatt_detaljer, og den har en kolonne som heter adresse som inneholder husnr, gatenavn osv. Du vil finne ut alle ansatte som har gate definert som 'Oxford Lane' som adresse.
Vi kan bruke LIKE-operatøren til å skrive et slikt spørsmål.
SELECT * FROM employee_details WHERE address LIKE '%Oxford Lane%'
Vær oppmerksom på at strengmønstrene er liten bokstav mens det blir matchet mot det spesifiserte kamputtrykket.
Q # 4) Hvordan spesifisere et annet Escape-tegn sammen med LIKE Operator?
Svar: MySQL gir en måte å spesifisere et tilpasset Escape-tegn som vil overstyre standardtegnet, dvs.
hva er den beste programvaren for fjerning av skadelig programvare
Her er et eksempel som vil endre rømningstegnet til ‘!’ For utførelse av spørringen.
SELECT * FROM employee_details WHERE address LIKE '%!_%' ESCAPE '!'
I forespørselen ovenfor har vi nevnt ‘!’ Som fluktkarakteren og brukt det samme i kamputtrykket.
Sp # 5) Hvordan matche et faktisk% eller _ tegn ved hjelp av LIKE Operator?
Svar: Tegnene som% og _ er spesielle jokertegn som når de faktisk må matches som en del av strengen, bør slippes unna.
Standard escape-tegnet er ‘’ og bør brukes like før du nevner jokertegnet.
Anta at vi vil matche ‘_’ tegnet mot en gitt kolonneverdi, så kan vi skrive samsvaruttrykket som - SOM '%\_%'
Konklusjon
I denne opplæringen lærte vi om de forskjellige måtene vi kan bruke LIKE-operatoren (eller den negerte versjonen, dvs. IKKE LIKE).
Vi diskuterte også de støttede jokertegnetegnene, dvs. _ og%, og hvordan kan de slippes unna hvis de trenger å være en del av strengen for å bli søkt / matchet.
LIKE-operatøren er en kraftig funksjonalitet levert av MySQL og brukes vanligvis til å filtrere poster mens du spør etter store datasett.
Anbefalt lesing
- MySQL Lag visningsveiledning med kodeeksempler
- MySQL UNION - Omfattende opplæring med fageksempler
- MySQL Lag tabellveiledning med eksempler
- MySQL Sett inn i tabellen - Sett inn uttalelsessyntaks og eksempler
- Unix Cat Command Syntax, Alternativer med eksempler
- C # Regex Tutorial: Hva er et C # regulært uttrykk
- C ++ regex Opplæring: Regulære uttrykk i C ++ med eksempler
- Java Regex-opplæring med eksempler på regulært uttrykk