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 | rios.calvin@example.com |
| 2 | Alan | Paterson | al an.paterson@ example.com |
| 3 | Kurt | Evans | kurt.evans@example.com |
| 4 | Alex | Watkins | alex. watkins@example.com |
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 | rios.calvin@example.com |
| Alan | Paterson | alan.paterson@example.com |
| Kurt | Evans | kurt.evans@example.com |
| Alex | Watkins | alex.watkins@example.com |
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.