sql >> Base de Datos >  >> RDS >> Mysql

Cómo funciona la función INSTR() en MySQL

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'