Problema:
Você gostaria de classificar o resultado de uma consulta SQL em ordem crescente ou decrescente.
Exemplo:
Nosso banco de dados tem uma tabela chamada
customer_information
com dados nas colunas id
, first_name
, last_name
e email_address
. Os endereços de e-mail foram preenchidos manualmente pelos usuários, e alguns foram inseridos com espaços desnecessários por acidente. Você deseja remover os espaços dos endereços de e-mail. id | first_name | last_name | endereço_email |
---|---|---|---|
1 | Calvino | Rios | [email protected] |
2 | Alan | Paterson | al an.paterson@ example.com |
3 | Kurt | Evans | [email protected] |
4 | Alex | Watkins | alex. [email protected] |
Solução:
Usaremos o
REPLACE
função. Aqui está a consulta:SELECT first_name, last_name, REPLACE(email_address, " ", "") AS correct_email_address FROM customer_information;
Segue o resultado da consulta:
first_name | last_name | endereço_email |
---|---|---|
Calvino | Rios | [email protected] |
Alan | Paterson | [email protected] |
Kurt | Evans | [email protected] |
Alex | Watkins | [email protected] |
Discussão:
Use o
REPLACE
função se você deseja substituir todas as ocorrências de uma substring em uma determinada string. Em nosso exemplo, substituímos espaços desnecessários por valores vazios. Esta função recebe três argumentos. O seguinte ilustra a sintaxe da função:
REPLACE(string_expression, substring, new_substring)
O primeiro argumento é a string que gostaríamos de modificar. O segundo argumento é a substring a ser substituída e o terceiro argumento é a string que queremos usar no lugar da substring substituída. Removemos os espaços indesejados em nosso exemplo, mas a função pode ser usada para muitas finalidades. Por exemplo, podemos querer limpar e padronizar uma coluna de números de telefone. Podemos usar o
REPLACE
função para fazê-lo. Se você deseja remover mais de um caractere de uma determinada string, apenas aninhe o
REPLACE
funcionar uma segunda vez. Por exemplo, se você tiver uma string com espaços e traços desnecessários, poderá usar a seguinte sintaxe:REPLACE(REPLACE(string_expression, " ", ""), "-", "")
Lembre-se que os argumentos desta função no MySQL diferenciam maiúsculas de minúsculas, então tenha cuidado com as letras.