Resumé: denne tutorial viser dig, hvordan du kan bruge MySQL INSTR funktion til at returnere placeringen af den første forekomst af en streng.
Introduktion til Mys .l INSTR-funktionen
Nogle gange vil du finde en substring i en streng eller kontrollere, om der findes en substring i en streng. I dette tilfælde kan du bruge en streng indbygget funktion kaldet INSTR.
INSTR – funktionen returnerer positionen for den første forekomst af en substring i en streng., Hvis substringen ikke findes i str, returnerer funktionen INSTR nul (0).
følgende illustrerer syntaksen for funktionen INSTR.
Code language: SQL (Structured Query Language) (sql)
Prøv
INSTR funktionen accepterer to argumenter:
strer den streng, du ønsker at søge i.substrer den substring, du vil søge efter.
INSTR funktionen er ikke store og små bogstaver., Det betyder, at det ikke betyder noget, om du passerer små bogstaver, store bogstaver, titelsagen osv., resultaterne er altid de samme.
Hvis du ønsker INSTR funktion til at udføre søgninger i case-sensitive måde, på en ikke-binær streng, skal du bruge BINARY operatør til at kaste et argument om INSTR funktion fra en ikke-binær streng til en binær streng.
MySQL INSTR funktion eksempler
følgende erklæring returnerer positionen af substring MySQL i MySQL INSTR string.,
Code language: SQL (Structured Query Language) (sql)
Prøv
følgende erklæring returnerer det samme resultat, fordi INSTR funktion er store og små bogstaver.,
Code language: SQL (Structured Query Language) (sql)
Prøv
for At tvinge INSTR funktion til at søge baseret på case-sensitive mode, skal du bruge BINARY operatør som følger:
Code language: SQL (Structured Query Language) (sql)
Prøv
resultatet er anderledes, fordi mysql vs. MySQL-nu med BINARY operatør.
INSTR-funktionen vs. som operatør
Vi bruger products tabel i eksempeldatabasen.,
Antag, at du ønsker at finde produktet, hvis navn indeholder car søgeord, kan du bruge INSTR funktion som følger:
Code language: SQL (Structured Query Language) (sql)
Prøv
Udover INSTR funktion, du kan bruge LIKE operatør til at matche Car mønster.,
Code language: SQL (Structured Query Language) (sql)
prøv det
begge forespørgsler returnerer det samme resultat. Så hvilken er hurtigere,INSTR ellerLIKE operatør?
svaret er, at de er de samme. De er begge store og små bogstaver og udføre fuld tabel scanninger.
lad os oprette et indeks på kolonnen productname.,
Code language: SQL (Structured Query Language) (sql)
Prøv
Hvis du bruger LIKE operatør med præfikset søg, på dette indekseret kolonne LIKE operatør vil udføre hurtigere end INSTR funktion.
se følgende erklæring.,
Code language: SQL (Structured Query Language) (sql)
Try It Out
You can check it using the EXPLAIN statement:
Code language: SQL (Structured Query Language) (sql)
Try It Out
And compare with the following statement that uses the INSTR function.,
Prøv
INSTR funktion udfører en tabel scanning, selvom det productname kolonne har et indeks. Dette skyldes, at MySQL ikke kan gøre nogen antagelse om semantik af INSTR funktion, hvorved MySQL kan udnytte sin forståelse af semantikken for LIKE operatør.
den hurtigste måde at teste, om der findes en substring i en streng, er at bruge et fuldtekstindeks., Det er dog nødvendigt en configure og vedligeholde indekset korrekt.
i denne tutorial har du lært, hvordan du bruger funktionen INSTR til at finde placeringen af den første forekomst af en substring i en streng.
- var denne vejledning nyttig?
- YesNo
Leave a Reply