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:
str
er strengen du vil søke i.substr
er 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