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'