Problém:
Chcete seřadit výsledek SQL dotazu ve vzestupném nebo sestupném pořadí.
Příklad:
Naše databáze obsahuje tabulku s názvem customer_information s údaji ve sloupcích id , first_name , last_name a email_address . E-mailové adresy uživatelé vyplnili ručně a do některých byly náhodně zadány zbytečné mezery. Chcete odstranit mezery z e-mailových adres.
| id | křestní_jméno | last_name | e-mailová_adresa |
|---|---|---|---|
| 1 | Calvin | 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 |
Řešení:
Použijeme REPLACE funkce. Zde je dotaz:
SELECT first_name, last_name, REPLACE(email_address, " ", "") AS correct_email_address FROM customer_information;
Zde je výsledek dotazu:
| first_name | last_name | e-mailová_adresa |
|---|---|---|
| Calvin | Rios | rios.calvin@example.com |
| Alan | Paterson | alan.paterson@example.com |
| Kurt | Evans | kurt.evans@example.com |
| Alex | Watkins | alex.watkins@example.com |
Diskuse:
Použijte REPLACE Pokud chcete nahradit všechny výskyty podřetězce v daném řetězci. V našem příkladu nahrazujeme zbytečné mezery prázdnými hodnotami.
Tato funkce má tři argumenty. Následující text ilustruje syntaxi funkce:
REPLACE(string_expression, substring, new_substring)
První argument je řetězec, který bychom chtěli upravit. Druhý argument je podřetězec, který má být nahrazen, a třetí argument je řetězec, který chceme použít místo nahrazeného podřetězce. V našem příkladu odstraníme nežádoucí mezery, ale funkci lze použít k mnoha účelům. Můžeme například chtít vyčistit a standardizovat sloupec telefonních čísel. Můžeme použít REPLACE funkce k tomu.
Pokud chcete z daného řetězce odstranit více než jeden znak, stačí vnořit REPLACE fungovat podruhé. Pokud máte například řetězec se zbytečnými mezerami a pomlčkami, můžete použít následující syntaxi:
REPLACE(REPLACE(string_expression, " ", ""), "-", "")
Pamatujte, že argumenty této funkce v MySQL rozlišují velká a malá písmena, takže buďte opatrní s písmeny.