Função INSTR() do MySQL
Usando a função instr(), podemos fornecer uma string e uma substring. A função determinará se a substring existe na string de origem. Se a substring existir, a função retornará a posição da primeira ocorrência da substring na string de origem.
Se a substring não existir na string de origem, a função retornará 0.
O seguinte demonstra a sintaxe da função instr():
INSTR(src_string, sub_string);
A função aceita dois parâmetros principais:
- O src_string refere-se à string de origem na qual você deseja pesquisar.
- A sub_string define a substring que você está procurando.
É bom ter em mente que a função instr() não diferencia maiúsculas de minúsculas. Portanto, a função localizará apenas os padrões correspondentes sem levar em consideração as letras maiúsculas e minúsculas,
Para realizar uma pesquisa com distinção entre maiúsculas e minúsculas, você pode usar outras ferramentas, como o operador binário.
Exemplo de uso da função
Os exemplos a seguir demonstram como podemos usar a função instr() para pesquisar uma substring específica.
SELECT INSTR('MySQL é um incrível mecanismo de banco de dados', 'banco de dados') as pos;
O exemplo acima retornará a posição inicial da string “database” da string fonte. Nesse caso, a posição da string do banco de dados é 21, conforme mostrado na saída abaixo:
pos|---+
21|
Exemplo 2
Podemos usar as funções lower() ou upper para converter uma string em letras minúsculas ou maiúsculas. Isso pode nos ajudar a superar a natureza sensível a maiúsculas e minúsculas da função.
Exemplo:
SELECT INSTR(lower('MySQL é um incrível mecanismo de banco de dados'), lower('DATABASE')) as pos;Resultado:
pos|
---+
21|
Isso retornará um valor semelhante ao primeiro exemplo, pois a string de origem e a substring são convertidas em letras minúsculas antes da operação de pesquisa.
Exemplo 3
Também podemos usar a função instr() com uma coluna de tabela, conforme mostrado na sintaxe abaixo.
SELECT INSTR(column_name, 'substring')FROM nome_da_tabela;
Exemplo:
CRIAR TABELA blogs (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
título VARCHAR(255) NÃO NULO,
conteúdo TEXTO NÃO NULO,
data_postada DATA NÃO NULA,
autor VARCHAR(255) NOT NULL
);
Insira alguns dados:
INSERT INTO blogs (title, content, date_posted, author)
VALORES ('Meu primeiro post no blog', 'Este é o conteúdo do meu primeiro post no blog.', '2022-12-09', 'Jane Doe');
INSERT INTO blogs (title, content, date_posted, author)
VALORES ('Minha segunda postagem no blog', 'Este é o conteúdo da minha segunda postagem no blog.', '2022-12-10', 'Jane Doe');
INSERT INTO blogs (title, content, date_posted, author)
VALORES ('Minha terceira postagem no blog', 'Este é o conteúdo da minha terceira postagem no blog.', '2022-12-11', 'Jane Doe');
selecione * de blogs;
Tabela resultante:
Podemos usar a função instr() para obter a posição da substring ‘blog’ na coluna de conteúdo, conforme mostrado:
selecione título, instr(conteúdo, 'postagem') de blogs;Resultado:
Conclusão
Neste tutorial, você aprendeu como usar a função INSTR() no MySQL para encontrar a posição de uma substring dentro de uma string. A função diferencia maiúsculas de minúsculas. Portanto, pode ser necessário usar funções como inferior e superior para converter as strings de pesquisa nos casos desejados.