No MariaDB,
INSTR() é uma função de string interna que retorna a posição da primeira ocorrência de uma substring dentro de outra string. INSTR() é semelhante ao LOCATE() função, exceto que LOCATE() oferece a opção de especificar uma posição inicial para a pesquisa. Além disso, a ordem dos argumentos é invertida entre essas duas funções. Sintaxe
A sintaxe fica assim:
INSTR(str,substr) Onde
str é a string, substr é a substring a ser encontrada. Exemplo
Segue um exemplo básico:
SELECT INSTR('The hot sun', 'hot'); Resultado:
+-----------------------------+
| INSTR('The hot sun', 'hot') |
+-----------------------------+
| 5 |
+-----------------------------+ Não diferencia maiúsculas de minúsculas
INSTR() executa uma pesquisa que não diferencia maiúsculas de minúsculas:SELECT INSTR('The hot sun', 'HOT'); Resultado:
+-----------------------------+
| INSTR('The hot sun', 'HOT') |
+-----------------------------+
| 5 |
+-----------------------------+ Várias ocorrências
Se a substring ocorrer mais de uma vez, somente a posição da primeira será retornada:
SELECT INSTR('The hot sun is really hot', 'hot'); Resultado:
+-------------------------------------------+
| INSTR('The hot sun is really hot', 'hot') |
+-------------------------------------------+
| 5 |
+-------------------------------------------+ Correspondência Parcial
Se a substring fizer parte de uma palavra maior, ainda será uma correspondência:
SELECT INSTR('The hottest sun', 'hot'); Resultado:
+---------------------------------+
| INSTR('The hottest sun', 'hot') |
+---------------------------------+
| 5 |
+---------------------------------+ Mas se a string for apenas parte da substring, não é uma correspondência:
SELECT INSTR('The hot sun', 'hottest'); Resultado:
+---------------------------------+
| INSTR('The hot sun', 'hottest') |
+---------------------------------+
| 0 |
+---------------------------------+ Espaços
O caractere de espaço ainda é uma string, então podemos incluir espaços na substring, mesmo que seja o único caractere:
SELECT INSTR('The hot sun', ' '); Resultado:
+---------------------------+
| INSTR('The hot sun', ' ') |
+---------------------------+
| 4 |
+---------------------------+ String vazia
Aqui está o que acontece quando a substring é uma string vazia:
SELECT INSTR('The hot sun', ''); Resultado:
+--------------------------+
| INSTR('The hot sun', '') |
+--------------------------+
| 1 |
+--------------------------+ Sem correspondência
Se a substring não for encontrada na string,
INSTR() retorna 0 :SELECT INSTR('The hot sun', 'cold'); Resultado:
+------------------------------+
| INSTR('The hot sun', 'cold') |
+------------------------------+
| 0 |
+------------------------------+ Argumentos nulos
Fornecendo
null para qualquer um dos argumentos resulta em null :SELECT
INSTR('The hot sun', null),
INSTR(null, 'hot'); Resultado:
+----------------------------+--------------------+
| INSTR('The hot sun', null) | INSTR(null, 'hot') |
+----------------------------+--------------------+
| NULL | NULL |
+----------------------------+--------------------+ Fornecendo o número errado de argumentos
Chamando
INSTR() com o número errado de argumentos ou sem passar nenhum argumento resulta em um erro:SELECT INSTR('hot'); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'