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