Resumen: Este tutorial le muestra cómo usar la función MySQL INSTR para devolver la posición de la primera aparición de una cadena.
Introducción a la función INSTR de MySQL
a veces, desea localizar una subcadena en una cadena o comprobar si existe una subcadena en una cadena. En este caso, puede usar una función incorporada de cadena llamada INSTR
.
la función INSTR
devuelve la posición de la primera aparición de una subcadena en una cadena., Si la subcadena no se encuentra en el str, la función INSTR
devuelve cero (0).
lo siguiente ilustra la sintaxis de la función INSTR
.
Code language: SQL (Structured Query Language) (sql)
Pruebe
El INSTR
función acepta dos argumentos:
str
es la cadena que desea buscar.substr
es la subcadena que desea buscar.
la función INSTR
no distingue entre mayúsculas y minúsculas., Significa que no importa si pasas las minúsculas, mayúsculas, mayúsculas, mayúsculas, etc. los resultados son siempre los mismos.
si desea que la función INSTR
realice búsquedas de manera sensible a mayúsculas y minúsculas en una cadena no binaria, utilice el operador BINARY
para convertir a uno el argumento de la función INSTR
de una cadena no binaria a una cadena binaria.
ejemplos de la función INSTR de MySQL
la siguiente instrucción devuelve la posición de la subcadena MySQL en la cadena MySQL INSTR
.,
Code language: SQL (Structured Query Language) (sql)
Pruebe
La siguiente instrucción devuelve el mismo resultado porque el INSTR
función distingue entre mayúsculas y minúsculas.,
Code language: SQL (Structured Query Language) (sql)
Pruebe
fuerza INSTR
función para realizar búsquedas basadas en caso sensibles a la moda, se utiliza la etiqueta BINARY
operador de la siguiente manera:
Code language: SQL (Structured Query Language) (sql)
Pruebe
El resultado es diferente, porque mysql vs MySQL ahora con el BINARY
operador.
la función INSTR vs. operador LIKE
usaremos la tabla products
en la base de datos de muestra.,
Supongamos que usted desea encontrar el producto cuyo nombre contiene el car
palabra clave, puede utilizar la etiqueta INSTR
función como sigue:
Code language: SQL (Structured Query Language) (sql)
Pruebe
Además de la etiqueta INSTR
función, puede utilizar la etiqueta LIKE
operador para que coincida con la etiqueta Car
patrón.,
Code language: SQL (Structured Query Language) (sql)
Pruebe
las dos consultas devuelven el mismo resultado. Entonces, ¿cuál es más rápido, el operador INSTR
o LIKE
?
La respuesta es que son iguales. Ambos distinguen entre mayúsculas y minúsculas y realizan escaneos de tablas completos.
vamos a crear un índice en la columna productname
.,
Code language: SQL (Structured Query Language) (sql)
Pruebe
Si utiliza la etiqueta LIKE
operador con el prefijo de búsqueda, en esta columna indizada, el LIKE
operador realizará más rápido que el INSTR
función.
vea la siguiente declaración.,
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.,
Pruebe
El INSTR
función realiza una exploración de la tabla aunque el productname
columna tiene un índice. Esto se debe a que MySQL no puede hacer ninguna suposición sobre la semántica de la función INSTR
, por lo que MySQL puede utilizar su comprensión de la semántica del operador LIKE
.
la forma más rápida de probar si existe una subcadena en una cadena es usar un índice de texto completo., Sin embargo, es necesario configurar y mantener el índice correctamente.
en este tutorial, ha aprendido cómo usar la función INSTR
para encontrar la posición de la primera aparición de una subcadena en una cadena.
- ¿Fue útil este tutorial?
- YesNo
Leave a Reply