Shrnutí: tento tutoriál vám ukáže, jak používat MySQL funkce INSTR vrátí pozici prvního výskytu řetězce.
Úvod do funkce INSTR MySQL
někdy chcete najít podřetězec v řetězci nebo zkontrolovat, zda v řetězci existuje podřetězec. V tomto případě můžete použít vestavěnou funkci řetězce nazvanou INSTR.
INSTR vrací pozici prvního výskytu podřetězce v řetězci., Pokud se podřetězec nenachází ve str, funkceINSTR vrátí nulu (0).
následující ilustruje syntaxiINSTR funkce.
Code language: SQL (Structured Query Language) (sql)
Vyzkoušet
INSTR funkce přijímá dva argumenty:
strje řetězec, který chcete hledat.substrje podřetězec, který chcete hledat.
funkceINSTR není malá a velká písmena., To znamená, že nezáleží na tom, zda předáte malá, velká písmena, titulní případ atd., výsledky jsou vždy stejné.
Pokud chcete INSTR funkce pro vyhledávání v case-sensitive způsobem na non-binární řetězec, můžete použít BINARY operátor vrhá jeden argument INSTR funkce z non-binární řetězec binární řetězec.
příklady funkcí INSTR MySQL
následující příkaz vrací pozici substrátu MySQL v řetězci MySQL INSTR.,
Code language: SQL (Structured Query Language) (sql)
Vyzkoušet
následující prohlášení, vrátí stejný výsledek, protože INSTR funkce je case-insensitive.,
Code language: SQL (Structured Query Language) (sql)
Vyzkoušet
síla INSTR funkci vyhledávání na základě případ-citlivé módní, můžete použít BINARY operátor takto:
Code language: SQL (Structured Query Language) (sql)
Vyzkoušet
výsledek je jiný, protože mysql vs. MySQL nyní s BINARY operátor.
funkce INSTR vs. like operator
použijeme tabulku products ve vzorové databázi.,
Předpokládejme, že chcete najít výrobek, jehož název obsahuje car klíčové slovo, můžete použít INSTR funkce následovně:
Code language: SQL (Structured Query Language) (sql)
Vyzkoušet
Vedle INSTR funkce, můžete použít LIKE obsluhy, aby odpovídaly Car vzor.,
Code language: SQL (Structured Query Language) (sql)
Vyzkoušejte to
oba dotazy vrátí stejný výsledek. Takže který z nich je rychlejší,INSTR neboLIKE operátor?
odpověď je, že jsou stejné. Oba jsou citlivé na malá a provádějí úplné skenování tabulky.
vytvoříme index ve sloupci productname.,
Code language: SQL (Structured Query Language) (sql)
Vyzkoušet
Pokud použijete LIKE operátor s předponou hledat, na to indexovaný sloupec, LIKE provozovatel bude provádět rychleji než INSTR funkce.
viz následující příkaz.,
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.,
Vyzkoušet
INSTR funkce provede prohledání tabulky, i když productname sloupec má index. Je to proto, že MySQL nemůže učinit předpoklad o sémantice INSTR funkce, kdy MySQL může využít jeho chápání sémantiky LIKE operátor.
nejrychlejší způsob, jak otestovat, zda v řetězci existuje podřetězec, je použít fulltextový index., Nicméně, to je nutné konfigurovat a udržovat index správně.
V tomto kurzu jste se naučili, jak používat INSTR funkce najít pozici prvního výskytu podřetězce v řetězci.
- byl tento tutoriál užitečný?
- YesNo
Leave a Reply