No MySQL, o
POSITION() A função retorna a posição da primeira ocorrência de uma substring dentro da string. Esta função é na verdade um sinônimo para
LOCATE() , mas com uma sintaxe ligeiramente diferente. O LOCATE() A função também tem uma funcionalidade extra, na medida em que permite definir uma posição inicial para a sua pesquisa. Sintaxe
A sintaxe básica é assim:
POSITION(substr IN str)
Onde
substr é a substring e str é a corda. Exemplo 1 – Uso básico
SELECT POSITION('Cat' IN 'The Cat') Result;
Resultado:
+--------+ | Result | +--------+ | 5 | +--------+
Exemplo 2 – Sensibilidade entre maiúsculas e minúsculas
A
POSITION() A função é multibyte segura e diferencia maiúsculas de minúsculas somente se pelo menos um argumento for uma string binária. Portanto, o exemplo a seguir não diferencia maiúsculas de minúsculas:
SELECT POSITION('Cat' IN 'The cat') Result;
Resultado:
+--------+ | Result | +--------+ | 5 | +--------+
Exemplo 3 – Sem correspondência
A função retorna
0 se a substring não for encontrada na string:SELECT POSITION('Dog' IN 'The cat') Result;
Resultado:
+--------+ | Result | +--------+ | 0 | +--------+
Exemplo 4 – Substrings incorporadas
Tenha cuidado ao escolher a substring. Se for parte de outra palavra, você pode obter um falso positivo:
SELECT POSITION('Cat' IN 'Good Catch!') Result;
Resultado:
+--------+ | Result | +--------+ | 6 | +--------+
Se você está apenas procurando por gato , o animal, isso seria um falso positivo.
Exemplo 5 – Somente na primeira ocorrência
Lembre-se, esta função retorna apenas a posição do primeiro ocorrência da substring. Quaisquer ocorrências subsequentes são ignoradas:
SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;
Resultado:
+--------+ | Result | +--------+ | 4 | +--------+
Exemplo 6 – Argumentos NULL
Se algum dos argumentos for
NULL , o resultado é NULL :SELECT
POSITION('Cat' IN NULL) 'Result 1',
POSITION(NULL IN 'The Cat') 'Result 2';
Resultado:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | NULL | NULL | +----------+----------+
Como mencionado, você também pode usar o
LOCATE() função, que permite definir uma posição inicial para sua pesquisa.