Função MySQL SUBSTRING()
A função `SUBSTRING()` do MySQL é usada para extrair uma substring de uma determinada string. Ele permite que você especifique a posição inicial e o comprimento da substring que deseja extrair.
Uso
A função `SUBSTRING()` é comumente usada quando você precisa recuperar uma parte específica de uma string para processamento ou formatação de dados. Ele ajuda a manipular cadeias de caracteres, dividindo-as em segmentos menores.
sql
SUBSTRING(string, position, [length])
Nessa sintaxe, `string` é a cadeia de caracteres de origem, `position` é o ponto de partida para a extração (índice baseado em 1) e `length` é opcional, especificando quantos caracteres você deve extrair. Se `length` for omitido, a substring se estenderá até o final da string. A `posição` também pode ser negativa, permitindo que a extração comece a partir do final da cadeia de caracteres.
Exemplos
1. Extração básica de substring
sql
SELECT SUBSTRING('Hello, World!', 8);
Este exemplo extrai a substring a partir do oitavo caractere, resultando em `'World!'`.
2. Extração com comprimento específico
sql
SELECT SUBSTRING('Database Management', 10, 6);
Aqui, a função extrai uma substring do 10º caractere, abrangendo 6 caracteres, produzindo `'Manage'`.
3. Uso da posição negativa
sql
SELECT SUBSTRING('Hello, World!', -6);
Isso demonstra a extração a partir do sexto caractere do final, resultando em `'World!'`.
4. Manipulação de comprimento que excede o comprimento da cadeia de caracteres
sql
SELECT SUBSTRING('MySQL', 3, 10);
Embora o comprimento especificado exceda o comprimento da cadeia de caracteres, a função retorna `'SQL'`, começando do terceiro caractere até o final.
5. Usando SUBSTRING() com dados de tabela
sql
SELECT SUBSTRING(customer_name, 1, 5)
FROM customers;
Os primeiros 5 caracteres de cada `customer_name` são extraídos da tabela `customers`, o que pode ser útil para criar abreviações ou códigos.
Dicas e práticas recomendadas
- Fique atento às posições. Lembre-se de que o parâmetro `position` é baseado em 1, o que significa que ele começa a contar a partir de 1, não de 0. Também pode ser negativo para iniciar a extração a partir do final da cadeia.
- Manuseie os comprimentos das cordas com cuidado. Se `length` exceder o comprimento da string, `SUBSTRING()` retornará os caracteres restantes sem erro.
- Use com `CHAR_LENGTH()`. Combine com `CHAR_LENGTH()` para determinar dinamicamente comprimentos e posições para operações de substring mais flexíveis.
- Observe se há valores NULL. Se a `string` for `NULL`, `SUBSTRING()` retornará `NULL`. Considere usar `CASE` ou `IFNULL()` para lidar com possíveis nulos, como:
sql SELECT IFNULL(SUBSTRING(name, 1, 5), 'N/A') FROM users;
- Considere `SUBSTRING_INDEX()`. Use `SUBSTRING_INDEX()` ao trabalhar com delimitadores em strings para extrair substrings com base em uma contagem de delimitadores especificada.
- Considerações sobre o desempenho. Tenha cuidado ao usar `SUBSTRING()` em grandes conjuntos de dados ou em consultas complexas, pois isso pode afetar o desempenho.