sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona INSTR() en MariaDB

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'