Oppsummering: denne opplæringen viser deg hvordan du bruker MySQL INSTR-funksjonen til å returnere posisjonen til den første forekomsten av en streng.
Introduksjon til MySQL INSTR funksjon
noen Ganger ønsker du å finne et delstreng i en streng eller for å kontrollere om en delstreng finnes i en streng. I dette tilfellet, kan du bruke en streng innebygd funksjon som kalles INSTR.
INSTR funksjonen returnerer posisjonen til den første forekomsten av en del i en streng., Hvis delstreng ikke finnes i str, INSTR funksjonen returnerer null (0).
følgende illustrerer syntaks for INSTR funksjon.
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
INSTR funksjon aksepterer to argumenter:
strer strengen du vil søke i.substrer delstreng at du ønsker å søke etter.
INSTR funksjonen er ikke mellom store og små bokstaver., Det betyr at det spiller ingen rolle om du passerer små bokstaver, store bokstaver, tittel tilfelle, etc. resultatet er alltid det samme.
Hvis du vil INSTR funksjonen til å utføre søk i case-sensitiv måte på en ikke-binær streng, bruker du BINARY operatør til å avgi ett argument av INSTR funksjon fra en ikke-binær streng til en binær streng.
MySQL INSTR funksjon eksempler på
følgende uttalelse returnerer posisjonen til delstreng MySQL i MySQL INSTR string.,
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
følgende uttalelse gir samme resultat fordi INSTR funksjon er små bokstaver.,
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
for Å tvinge INSTR funksjonen til å søke basert på case-sensitive, mote, kan du bruke BINARY operatør som følger:
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
resultatet er annerledes fordi mysql v MySQL nå med BINARY operatør.
INSTR funksjon vs. LIKE-operatoren
Vi vil bruke products tabellen i eksempel databasen.,
Tenk deg at du ønsker å finne produktet med navn som inneholder car søkeord, kan du bruke INSTR funksjon som følger:
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
Foruten INSTR funksjon, du kan bruke LIKE operatør for å matche Car mønster.,
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
Begge spørsmål tilbake samme resultat. Så noe som er raskere, INSTR eller LIKE operatør?
svaret er at de er de samme. De er begge case-sensitive, og utføre en fullstendig tabell skanner.
La oss lage en indeks på productname kolonne.,
Code language: SQL (Structured Query Language) (sql)
Prøv Det Ut
Hvis du bruker LIKE operatør med prefikset søk på denne indeksert kolonne, LIKE operatør vil utføre raskere enn INSTR funksjon.
Se følgende uttalelse.,
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 Det Ut
INSTR funksjon utfører en tabell skanne selv om productname kolonne har en indeks. Dette er fordi MySQL kan ikke gjøre noen forutsetningen om semantikk av INSTR funksjon, der MySQL kan utnytte sin forståelse av betydningen av LIKE operatør.
Den raskeste måten å teste om en delstreng finnes i en streng er å bruke en full-tekst-indeksen., Det er imidlertid nødvendig med en konfigurere og vedlikeholde indeks på riktig måte.
I denne opplæringen, har du lært hvordan du kan bruke INSTR funksjonen til å finne posisjonen til den første forekomsten av en del i en streng.
- Var denne opplæringen nyttig?
- YesNo
Leave a Reply