MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como o INSTR() funciona no MariaDB


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'