podsumowanie: ten samouczek pokazuje, jak użyć funkcji MySQL INSTR, aby zwrócić pozycję pierwszego wystąpienia ciągu znaków.
Wprowadzenie do funkcji MySQL INSTR
czasami chcesz zlokalizować podłańcuch w łańcuchu lub sprawdzić, czy podłańcuch istnieje w łańcuchu. W tym przypadku możesz użyć wbudowanej funkcji o nazwie INSTR.
funkcjaINSTR Zwraca pozycję pierwszego wystąpienia fragmentu łańcucha., Jeśli podłańcuch nie zostanie znaleziony w str, funkcja INSTR zwraca zero (0).
poniżej przedstawiono składnię funkcji INSTR.
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
INSTR funkcja przyjmuje dwa argumenty:
strjest ciągiem znaków, w którym chcesz wyszukać.substrjest podłańcuchem, którego chcesz szukać.
funkcjaINSTR nie uwzględnia wielkości liter., Oznacza to, że nie ma znaczenia, czy przekazujesz Małe, Wielkie, wielkie litery, itp., wyniki są zawsze takie same.
Jeśli chcesz, aby funkcjaINSTR wykonywała wyszukiwania w sposób uwzględniający wielkość liter na nietargowym łańcuchu, użyj operatoraBINARY, aby oddać jeden argument funkcjiINSTR z nietargowego łańcucha do binarnego łańcucha.
przykłady funkcji MySQL INSTR
następujące polecenie zwraca pozycję fragmentu MySQL w ciągu MySQL INSTR.,
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
poniższe polecenie zwraca ten sam wynik, ponieważ INSTR funkcja nie rozróżnia wielkości liter.,
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
aby wymusić INSTR funkcja wyszukiwania w oparciu o rozróżnianie wielkości liter, użyj operatora BINARY w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
wypróbuj
wynik jest inny, ponieważ MySQL vs.MySQL teraz z operatorem BINARY.
funkcja INSTR vs.like operator
użyjemy tabeliproducts w przykładowej bazie danych.,
Załóżmy, że chcesz znaleźć produkt, którego nazwa zawiera słowo kluczowe car, możesz użyć INSTR funkcja w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
wypróbuj ją
oprócz funkcja INSTR, możesz użyć operatora LIKE, aby dopasować wzór Car.,
Code language: SQL (Structured Query Language) (sql)
Wypróbuj
oba zapytania zwracają ten sam wynik. Więc który z nich jest szybszy,INSTR czyLIKE operator?
odpowiedź jest taka, że są takie same. Są one zarówno uwzględniające wielkość liter, jak i wykonujące Pełne skanowanie tabeli.
stwórzmy indeks na kolumnie productname.,
Code language: SQL (Structured Query Language) (sql)
wypróbuj to
Jeśli użyjesz LIKE operator z wyszukiwaniem prefiksów, w tej zindeksowanej kolumnie, LIKE operator będzie działał szybciej niż INSTR function.
patrz poniższe stwierdzenie.,
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.,
Wypróbuj
INSTR funkcja wykonuje skanowanie tabeli, nawet jeśli productname Dzieje się tak dlatego, że MySQL nie może zakładać semantyki funkcji INSTR, dzięki czemu MySQL może wykorzystać swoje zrozumienie semantyki operatora LIKE.
najszybszym sposobem sprawdzenia, czy fragment tekstu istnieje w łańcuchu jest użycie pełnotekstowego indeksu., Wymagane jest jednak prawidłowe skonfigurowanie i utrzymanie indeksu.
w tym samouczku nauczyłeś się używać funkcji INSTR, aby znaleźć pozycję pierwszego wystąpienia podłańcucha w łańcuchu.
- czy ten tutorial był pomocny?
- YesNo
Leave a Reply