Riepilogo: questo tutorial mostra come utilizzare la funzione MySQL INSTR per restituire la posizione della prima occorrenza di una stringa.
Introduzione alla funzione MySQL INSTR
A volte, si desidera individuare una sottostringa in una stringa o verificare se esiste una sottostringa in una stringa. In questo caso, è possibile utilizzare una funzione integrata nella stringa chiamata INSTR.
La funzione INSTR restituisce la posizione della prima occorrenza di una sottostringa in una stringa., Se la sottostringa non viene trovata nella str, la funzioneINSTR restituisce zero (0).
Quanto segue illustra la sintassi della funzioneINSTR.
Code language: SQL (Structured Query Language) (sql)
Provalo
La funzioneINSTR accetta due argomenti:
-
strè la stringa in cui vuoi cercare. -
substrè la sottostringa che si desidera cercare.
La funzione INSTR non è case sensitive., Significa che non importa se passi il minuscolo, il maiuscolo, il titolo, ecc., i risultati sono sempre gli stessi.
Se si desidera che la funzione INSTR esegua ricerche in modo sensibile alle maiuscole e minuscole su una stringa non binaria, si utilizza l’operatore BINARY per lanciare un argomento della funzione INSTR da una stringa non binaria a una stringa binaria.
La funzione MySQL INSTR esempi
La seguente istruzione restituisce la posizione della sottostringa MySQL nella stringaMySQL INSTR.,
Code language: SQL (Structured Query Language) (sql)
Provare
La seguente dichiarazione restituisce lo stesso risultato, in quanto il INSTR funzione è case-insensitive.,
Code language: SQL (Structured Query Language) (sql)
Provare
forza INSTR funzione di ricerca basata su casi sensibili alla moda, si utilizza il tag BINARY operatore come segue:
Code language: SQL (Structured Query Language) (sql)
Provare
Il risultato è diverso, perché mysql vs MySQL ora con il BINARY operatore.
La funzione INSTR rispetto all’operatore LIKE
Useremo la tabellaproducts nel database di esempio.,
si Supponga di voler trovare un prodotto il cui nome contiene il car parola chiave, è possibile utilizzare il INSTR funzione come segue:
Code language: SQL (Structured Query Language) (sql)
Provare
Oltre INSTR la funzione è possibile utilizzare i tag LIKE operatore per abbinare il Car modello.,
Code language: SQL (Structured Query Language) (sql)
Provalo
Entrambe le query restituiscono lo stesso risultato. Quindi quale è più veloce, l’operatore INSTR o LIKE?
La risposta è che sono uguali. Sono entrambi case-sensitive ed eseguono scansioni complete della tabella.
Creiamo un indice sulla colonnaproductname.,
Code language: SQL (Structured Query Language) (sql)
Provalo
Se si utilizza l’operatore LIKE con il prefisso cerca, su questa colonna indicizzata, l’operatoreLIKE eseguirà più velocemente dell’operatoreINSTR funzione .
Vedere la seguente dichiarazione.,
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.,
Provare
INSTR funzione esegue una scansione della tabella, anche se il productname colonna ha un indice. Questo perché MySQL non può fare alcuna ipotesi sulla semantica della funzione INSTR, per cui MySQL può utilizzare la sua comprensione della semantica dell’operatore LIKE.
Il modo più veloce per verificare se esiste una sottostringa in una stringa è usare un indice full-text., Tuttavia, è necessario un configurare e mantenere l’indice correttamente.
In questo tutorial, hai imparato come usare la funzione INSTR per trovare la posizione della prima occorrenza di una sottostringa in una stringa.
- Questo tutorial è stato utile?
- Sì
Leave a Reply