El INSTR()
La función devuelve la posición de la primera aparición de una subcadena dentro de una cadena. Básicamente, hace lo mismo que la sintaxis de dos argumentos de LOCATE()
la función sí (excepto que se invierte el orden de los argumentos).
Sintaxis
La sintaxis es así:
INSTR(str,substr)
Donde str
es la cadena que desea buscar y substr
es la subcadena que está buscando.
Ejemplo 1:uso básico
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Resultado:
+--------+ | Result | +--------+ | 10 | +--------+
En este caso, la cadena dogs
comienza en la posición 10.
Ejemplo 2:no distingue entre mayúsculas y minúsculas
No distingue entre mayúsculas y minúsculas:
SELECT INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1', INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';
Resultado:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 10 | 10 | +----------+----------+
Ejemplo 3:coincidencia parcial
No importa si su término de búsqueda solo representa parte de una palabra, igual coincidirá (después de todo, simplemente está buscando una subcadena dentro de una cadena):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
Resultado:
+--------+ | Result | +--------+ | 10 | +--------+
Un espacio sigue siendo parte de la cadena. Para que pueda buscar el primer espacio si necesita:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
Resultado:
+--------+ | Result | +--------+ | 5 | +--------+
Ejemplo 4:Primera ocurrencia solamente
Recuerde, solo se devuelve la posición de la primera aparición:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
Resultado:
+--------+ | Result | +--------+ | 2 | +--------+
Ejemplo 5:cuando no se puede encontrar la subcadena
Si no se encuentra la subcadena, un resultado de 0
se devuelve:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Resultado:
+--------+ | Result | +--------+ | 0 | +--------+
Ejemplo 6:Recuento de parámetros incorrecto
Si omite alguno de los parámetros, obtendrá un error:
SELECT INSTR('Cats and dogs like to run') AS Result;
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'
También obtendrá un error si proporciona demasiados parámetros:
SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'