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