En MariaDB, INSTR()
es una función de cadena integrada que devuelve la posición de la primera aparición de una subcadena dentro de otra cadena.
INSTR()
es similar a LOCATE()
función, excepto que LOCATE()
ofrece la opción de especificar una posición inicial para la búsqueda. Además, el orden de los argumentos se invierte entre estas dos funciones.
Sintaxis
La sintaxis es así:
INSTR(str,substr)
Donde str
es la cadena, substr
es la subcadena a buscar.
Ejemplo
He aquí un ejemplo básico:
SELECT INSTR('The hot sun', 'hot');
Resultado:
+-----------------------------+ | INSTR('The hot sun', 'hot') | +-----------------------------+ | 5 | +-----------------------------+
Insensible a mayúsculas y minúsculas
INSTR()
realiza una búsqueda que no distingue entre mayúsculas y minúsculas:
SELECT INSTR('The hot sun', 'HOT');
Resultado:
+-----------------------------+ | INSTR('The hot sun', 'HOT') | +-----------------------------+ | 5 | +-----------------------------+
Ocurrencias Múltiples
Si la subcadena aparece más de una vez, solo se devuelve la posición de la primera:
SELECT INSTR('The hot sun is really hot', 'hot');
Resultado:
+-------------------------------------------+ | INSTR('The hot sun is really hot', 'hot') | +-------------------------------------------+ | 5 | +-------------------------------------------+
Coincidencia parcial
Si la subcadena es parte de una palabra más grande, sigue siendo una coincidencia:
SELECT INSTR('The hottest sun', 'hot');
Resultado:
+---------------------------------+ | INSTR('The hottest sun', 'hot') | +---------------------------------+ | 5 | +---------------------------------+
Pero si la cadena es solo parte de la subcadena, no es una coincidencia:
SELECT INSTR('The hot sun', 'hottest');
Resultado:
+---------------------------------+ | INSTR('The hot sun', 'hottest') | +---------------------------------+ | 0 | +---------------------------------+
Espacios
El carácter de espacio sigue siendo una cadena, por lo que podemos incluir espacios en la subcadena, incluso si es el único carácter:
SELECT INSTR('The hot sun', ' ');
Resultado:
+---------------------------+ | INSTR('The hot sun', ' ') | +---------------------------+ | 4 | +---------------------------+
Cadena vacía
Esto es lo que sucede cuando la subcadena es una cadena vacía:
SELECT INSTR('The hot sun', '');
Resultado:
+--------------------------+ | INSTR('The hot sun', '') | +--------------------------+ | 1 | +--------------------------+
Sin coincidencia
Si la subcadena no se encuentra en la cadena, INSTR()
devuelve 0
:
SELECT INSTR('The hot sun', 'cold');
Resultado:
+------------------------------+ | INSTR('The hot sun', 'cold') | +------------------------------+ | 0 | +------------------------------+
Argumentos nulos
Proporcionar null
para cualquiera de los resultados de los argumentos en null
:
SELECT
INSTR('The hot sun', null),
INSTR(null, 'hot');
Resultado:
+----------------------------+--------------------+ | INSTR('The hot sun', null) | INSTR(null, 'hot') | +----------------------------+--------------------+ | NULL | NULL | +----------------------------+--------------------+
Proporcionar el número incorrecto de argumentos
Llamando a INSTR()
con el número incorrecto de argumentos, o sin pasar ningún argumento da como resultado un error:
SELECT INSTR('hot');
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'