Resumo : neste tutorial, você aprenderá como usar a LOCATE()
função MySQL para encontrar a posição de uma substring dentro de uma determinada string.
Introdução à função MySQL LOCATE()
A LOCATE()
função retorna a posição de uma substring dentro de uma determinada string. A LOCATE()
função possui a seguinte sintaxe:
LOCATE(substring, string, position)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
substring
: a substring que você deseja localizar na string principal.string
: A string principal na qual você deseja encontrar a substring.position
: a posição na string principal onde você deseja iniciar a pesquisa pela substring. Oposition
é opcional. Se você omitir, a pesquisa começa no início da string.
Se a LOCATE()
função não conseguir encontrar a substring na string que começa na posição, ela retornará 0.
Se algum argumento for NULL
, a LOCATE()
função retornará NULL
.
Exemplos de funções MySQL LOCATE()
Vejamos alguns exemplos de uso da LOCATE()
função.
1) Exemplo simples da função MySQL LOCATE()
O exemplo a seguir usa a LOCATE()
função para encontrar a posição da substring 'MySQL'
na string 'Hello, MySQL'
:
SELECT
LOCATE('MySQL', 'Hello, MySQL') position;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+----------+
| position |
+----------+
| 8 |
+----------+
1 row in set (0.01 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, a LOCATE()
função retorna 8 indicando que a string 'MySQL'
começa na 8ª posição da string 'Hello, MySQL'
.
Como não usamos o position
parâmetro, a LOCATE()
função começa a procurar a substring desde o início da string.
2) Usando a função LOCATE() usando o parâmetro position
O exemplo a seguir usa a LOCATE
função para encontrar a substring "know"
na string “ You don't know what you don't know"
começando na posição 12:
SELECT
LOCATE(
'know', "You don't know what you don't know",
12
) position;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+----------+
| position |
+----------+
| 31 |
+----------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A string principal "You don't know what you don't know"
possui duas palavras "know"
. A primeira substring "know"
começa na posição 11 e a segunda começa na posição 31 da string principal.
Como usamos o valor 12 para o position
argumento, a LOCATE()
função começa a procurar a substring "know"
na posição 12 e a encontra na posição 31.
3) Tratamento de casos sem correspondência
Se a substring não for encontrada na string principal, a LOCATE()
função retornará 0. Por exemplo:
SELECT
LOCATE('alien', 'earth');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------------------------+
| LOCATE('alien', 'earth') |
+--------------------------+
| 0 |
+--------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A LOCATE()
função retorna 0 porque não consegue encontrar a string "alien"
na string "earth"
.
4) Usando a função LOCATE() com os dados da tabela
Usaremos a products
tabela do banco de dados de exemplo :
O exemplo a seguir usa a LOCATE()
função para localizar o produto que contém a palavra "Harley Davidson"
na descrição do produto:
SELECT
productName
FROM
products
WHERE
LOCATE(
"Harley Davidson", productDescription
) > 0;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------------------------------------+
| productName |
+--------------------------------------+
| 2003 Harley-Davidson Eagle Drag Bike |
+--------------------------------------+
1 row in set (0.01 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- Use a função MySQL
LOCATE()
para encontrar a posição de uma substring dentro de uma determinada string começando em uma posição especificada.