No MariaDB,
POSITION() é uma função de string interna que retorna a posição da primeira ocorrência de uma substring dentro de outra string. Faz parte do ODBC 3.0. POSITION(substr IN str) é um sinônimo para LOCATE(substr,str) . POSITION() também é semelhante ao INSTR() função, exceto que POSITION() usa o IN sintaxe e que a ordem dos argumentos é invertida entre essas duas funções. Sintaxe
A sintaxe fica assim:
POSITION(substr IN str) Onde
str é a string e substr é a substring para a qual retornar a posição. Exemplo
Segue um exemplo básico:
SELECT POSITION('cute' IN 'My cute dog'); Resultado:
+-----------------------------------+| POSITION('cute' IN 'My cute dog') |+-----------------------------------+ | 4 |+-----------------------------------+ Sensibilidade de maiúsculas e minúsculas
POSITION() executa uma pesquisa que não diferencia maiúsculas de minúsculas:SELECT POSITION('CUTE' IN 'My cute dog'); Resultado:
+-----------------------------------+| POSITION('CUTE' IN 'My cute dog') |+-----------------------------------+ | 4 |+-----------------------------------+ Várias ocorrências
Se a substring ocorrer mais de uma vez, apenas a posição da primeira (da posição inicial) é retornada:
SELECT POSITION('cute' IN 'My cute dog is SOOOO cute!'); Resultado:
+---------------------------------------------- ----+| POSITION('cute' IN 'Meu cachorro fofo é TÃO fofo!') |+-------------------------------- ------------------+| 4 |+---------------------------------------------------------- ---+ Correspondência Parcial
Se a substring fizer parte de uma palavra maior, ainda será uma correspondência:
SELECT POSITION('dog' IN 'My doggy is SOOO cute!'); Resultado:
+---------------------------------------------+ | POSITION('cachorro' IN 'Meu cachorrinho é TÃO fofo!') |+--------------------------------- ------------+| 4 |+---------------------------------------------+
Mas se a string for apenas parte da substring, não é uma correspondência:
SELECT POSITION('doggy' IN 'My dog is SOOO cute!');
Resultado:
+---------------------------------------------+ | POSITION('cachorrinho' IN 'Meu cachorro é TÃO fofo!') |+--------------------------------- ------------+| 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 POSITION(' ' IN 'My dog');
Resultado:
+---------------------------+| POSITION(' ' EM 'Meu cachorro') |+---------------------------+| 3 |+---------------------------+ String vazia
Aqui está o que acontece quando a substring é uma string vazia:
SELECT POSITION('' IN 'My dog');
Resultado:
+--------------------------+| POSITION('' IN 'Meu cachorro') |+--------------------------+| 1 |+--------------------------+ Sem correspondência
Se a substring não for encontrada na string, POSITION() retorna 0 :
SELECT position('cat' IN 'My dog');
Resultado:
+-----------------------------+| position('gato' IN 'Meu cachorro') |+----------------------------+| 0 |+-----------------------------+ Argumentos nulos
Fornecendo null para qualquer um dos argumentos resulta em null :
SELECT
POSITION(null IN 'My dog'),
POSITION('dog' IN null);
Resultado:
+----------------------------+----------------- --------+| POSITION(null IN 'Meu cachorro') | POSITION('cão' IN null) |+----------------------------+----------- --------------+| NULO | NULL |+----------------------------+------------------ -------+ Fornecendo o número errado de argumentos
Chamando POSITION() com o número errado de argumentos ou sem passar nenhum argumento resulta em um erro:
SELECT POSITION('dog');
Resultado:
ERRO 1064 (42000):Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde à versão do seu servidor MariaDB para a sintaxe correta para usar perto de ')' na linha 1