Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como a função INSTR() funciona no MySQL


O INSTR() A função retorna a posição da primeira ocorrência de uma substring dentro de uma string. Basicamente, ele faz a mesma coisa que a sintaxe de dois argumentos do LOCATE() função faz (exceto que a ordem dos argumentos é invertida).


Sintaxe


A sintaxe fica assim:
INSTR(str,substr)

Onde str é a string que você deseja pesquisar e substr é a substring que você está procurando.

Exemplo 1 – Uso básico

SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;

Resultado:
+--------+
| Result |
+--------+
|     10 |
+--------+

Neste caso, a string dogs começa na posição 10.

Exemplo 2 – Não diferencia maiúsculas de minúsculas


Não diferencia maiúsculas de 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 |
+----------+----------+

Exemplo 3 – Correspondência Parcial


Não importa se o seu termo de pesquisa representa apenas parte de uma palavra, ele ainda corresponderá (afinal, você está simplesmente procurando por uma substring dentro de uma string):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;

Resultado:
+--------+
| Result |
+--------+
|     10 |
+--------+

Um espaço ainda faz parte da string. Assim, você pode procurar o primeiro espaço se precisar:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;

Resultado:
+--------+
| Result |
+--------+
|      5 |
+--------+

Exemplo 4 – Somente a primeira ocorrência


Lembre-se, apenas a posição da primeira ocorrência é retornada:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;

Resultado:
+--------+
| Result |
+--------+
|      2 |
+--------+

Exemplo 5 – Quando a substring não pode ser encontrada


Se a substring não for encontrada, um resultado de 0 é retornado:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;

Resultado:
+--------+
| Result |
+--------+
|      0 |
+--------+

Exemplo 6 - Contagem de parâmetros incorreta


Se você omitir qualquer um dos parâmetros, receberá um erro:
SELECT INSTR('Cats and dogs like to run') AS Result;

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'

Você também receberá um erro se fornecer muitos 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'