Проблем:
Искате да сортирате резултата от SQL заявка във възходящ или низходящ ред.
Пример:
Нашата база данни има таблица с име customer_information
с данни в колоните id
, first_name
, last_name
и email_address
. Имейл адресите бяха попълнени от потребителите ръчно, а някои бяха въведени с ненужни интервали случайно. Искате да премахнете интервалите от имейл адресите.
id | first_name | фамилно_име | имейл_адрес |
---|---|---|---|
1 | Калвин | Риос | [email protected] |
2 | Алан | Патерсън | al an.paterson@ example.com |
3 | Кърт | Евънс | [email protected] |
4 | Алекс | Уоткинс | алекс. [email protected] |
Решение:
Ще използваме REPLACE
функция. Ето заявката:
SELECT first_name, last_name, REPLACE(email_address, " ", "") AS correct_email_address FROM customer_information;
Ето резултата от заявката:
first_name | фамилно_име | имейл_адрес |
---|---|---|
Калвин | Риос | [email protected] |
Алан | Патерсън | [email protected] |
Кърт | Евънс | [email protected] |
Алекс | Уоткинс | [email protected] |
Дискусия:
Използвайте REPLACE
функция, ако искате да замените всички срещания на подниз в даден низ. В нашия пример заменяме ненужните интервали с празни стойности.
Тази функция приема три аргумента. Следното илюстрира синтаксиса на функцията:
REPLACE(string_expression, substring, new_substring)
Първият аргумент е низът, който бихме искали да модифицираме. Вторият аргумент е поднизът, който трябва да бъде заменен, а третият аргумент е низът, който искаме да използваме вместо заменения подниз. Премахваме нежеланите интервали в нашия пример, но функцията може да се използва за много цели. Например, може да искаме да почистим и стандартизираме колона с телефонни номера. Можем да използваме REPLACE
функция за това.
Ако искате да премахнете повече от един знак от даден низ, просто вложете REPLACE
функционира втори път. Например, ако имате низ с ненужни интервали и тирета, можете да използвате следния синтаксис:
REPLACE(REPLACE(string_expression, " ", ""), "-", "")
Не забравяйте, че аргументите на тази функция в MySQL са чувствителни към главни букви, така че внимавайте с буквите.