Resumo : neste tutorial, você aprenderá como usar a SUBSTRING_INDEX()
função MySQL para obter uma substring de uma string antes de um número especificado de ocorrências do delimitador.
Visão geral da função MySQL SUBSTRING_INDEX()
A SUBSTRING_INDEX()
função retorna uma substring de uma string antes de um número especificado de ocorrências do delimitador.
Aqui está a sintaxe da SUBSTRING_INDEX()
função:
SUBSTRING_INDEX(str,delimiter,n)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
str
é a string da qual você deseja extrair uma substring.delimiter
é uma string que atua como um delimitador. A função realiza uma correspondência com distinção entre maiúsculas e minúsculas ao procurar o delimitador.n
é um número inteiro que especifica o número de ocorrências do delimitador. On
pode ser negativo ou positivo. Sen
for positivo, a função retorna todos os caracteres da esquerda da string até on
número de ocorrências do delimitador. Sen
for negativo, a função retorna todos os caracteres até on
número de ocorrências do delimitador.
Exemplos de funções MySQL SUBSTRING_INDEX()
Vejamos alguns exemplos de uso da SUBSTRING_INDEX()
função.
1) Usando a função MySQL SUBSTRING_INDEX() com um número positivo de ocorrências de um delimitador
Veja o exemplo a seguir:
SELECT
SUBSTRING_INDEX('Hello World', 'l', 1);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, o delimitador é l
e o n
é 1, portanto, a função retorna todos os caracteres até a 1ª ocorrência do delimitador l
.
Aqui está a saída:
+----------------------------------------+
| SUBSTRING_INDEX('Hello World', 'l', 1) |
+----------------------------------------+
| He |
+----------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O seguinte mostra outro exemplo de uso da SUBSTRING_INDEX()
função:
SELECT
SUBSTRING_INDEX('Hello World', 'l', 2);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+----------------------------------------+
| SUBSTRING_INDEX('Hello World', 'l', 2) |
+----------------------------------------+
| Hel |
+----------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
E
SELECT
SUBSTRING_INDEX('Hello World', 'l', 3);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+----------------------------------------+
| SUBSTRING_INDEX('Hello World', 'l', 3) |
+----------------------------------------+
| Hello Wor |
+----------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
2) Usando a função SUBSTRING_INDEX() com um número negativo de ocorrências de um delimitador
Veja o exemplo a seguir:
SELECT
SUBSTRING_INDEX('Hello World', 'l', -1);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, o delimitador é l
e n
é -1, portanto, a função retorna todos os caracteres da direita da string até a 1ª ocorrência do caractere l
, (contando da direita)
Aqui está a saída:
+-----------------------------------------+
| SUBSTRING_INDEX('Hello World', 'l', -1) |
+-----------------------------------------+
| d |
+-----------------------------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está outro exemplo:
SELECT
SUBSTRING_INDEX('Hello World', 'l', - 2) result1,
SUBSTRING_INDEX('Hello World', 'l', - 3) result2;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+---------+----------+
| result1 | result2 |
+---------+----------+
| o World | lo World |
+---------+----------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
3) Usando a função SUBSTRING_INDEX() com o exemplo de dados da tabela
Consulte a customers
tabela a seguir do banco de dados de exemplo :
Este exemplo usa a SUBSTRING_INDEX()
função para extrair os números das casas dos endereços de todos os clientes nos EUA:
SELECT
customerName,
addressLine1,
SUBSTRING_INDEX(addressLine1, ' ', 1) house_no
FROM
customers
WHERE
country = 'USA'
ORDER BY
customerName;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A imagem a seguir mostra a saída parcial:
Neste tutorial, você aprendeu como usar a SUBSTRING_INDEX()
função MySQL para obter uma substring de uma string antes de um número especificado de ocorrências do delimitador.