A função FIND_IN_SET retorna a posição da string str1 na string str2, cujos elementos são separados pelo delimiter. A primeira posição é 1.
Sintaxe
BIGINT FIND_IN_SET(STRING <str1>, STRING <str2>[, STRING <delimiter>])
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
str1 |
Sim |
Valor do tipo STRING. Especifica a substring a ser pesquisada. |
|
str2 |
Sim |
Valor do tipo STRING. Define a string na qual as substrings estão separadas pelo delimiter. |
|
delimiter |
Não |
Valor do tipo STRING. O delimiter padrão é a vírgula (,). O delimiter pode ser um único caractere ou uma string. |
Valor de retorno
A função retorna um valor BIGINT conforme as condições abaixo:
Retorna 0 caso str1 não seja encontrada em str2 ou se str1 contiver o delimiter.
Retorna
NULLquando str1 ou str2 forNULL.
Exemplos
-
Exemplo 1: Para localizar a posição da string
abna sequênciaabc,hello,ab,c, usando a vírgula (,) como separador, execute o comando a seguir:SELECT FIND_IN_SET('ab', 'abc,hello,ab,c') AS pos;Resultado:
+------------+ | pos | +------------+ | 3 | +------------+ -
Exemplo 2: Ao buscar a string
hidentro deabc,hello,ab,c, delimitada por vírgula (,), utilize este comando:SELECT FIND_IN_SET('hi', 'abc,hello,ab,c') AS pos;Resultado:
+------------+ | pos | +------------+ | 0 | +------------+ -
Exemplo 3: Use o comando abaixo para encontrar a string
abemabc_hello_ab_c, considerando o underscore (_) como delimitador:SELECT FIND_IN_SET('ab', 'abc_hello_ab_c', '_') AS pos;Resultado:
+------------+ | pos | +------------+ | 3 | +------------+ -
Exemplo 4: Quando o parâmetro de entrada
str1oustr2forNULL, aplique o seguinte comando:SELECT FIND_IN_SET(null, 'abc,hello,ab,c') AS pos;Resultado:
+------------+ | pos | +------------+ | NULL | +------------+
Funções relacionadas
A função FIND_IN_SET pertence à categoria de funções de string. Para mais detalhes sobre funções de string voltadas para pesquisa e transformação de formato, consulte Visão geral das funções de string.