Проблем:
Искате да премахнете конкретни знаци от началото и края на низ.
Пример:
Нашата база данни има таблица с име post
с данни в две колони:id
и title
.
id | заглавие |
---|---|
1 | „Новини за кучета“ |
3 | „Евровизия 2019“ |
4 | „Нов политически климат“ |
Нека отрежем заглавието на всяка публикация, за да премахнем ненужното място в началото и в края.
Решение:
Ще използваме TRIM
функция. Ето заявката, която бихте написали:
SELECT TRIM( BOTH ' ' FROM title ) as new_title FROM post;
Като алтернатива можете да използвате по-кратката версия без BOTH
ключова дума; по подразбиране TRIM
ще третира това като ДВЕТЕ операция.
SELECT TRIM(' ' FROM title ) as new_title FROM post;
Ето резултата и от двете заявки:
ново_заглавие |
---|
„Новини за кучета“ |
„Евровизия 2019“ |
„Нов политически климат“ |
Дискусия:
Използвайте TRIM
функция, ако искате да отрежете низ в таблица. Тази функция ви позволява да премахнете конкретен знак от началото или края на низ, или от двата края. Тази функция приема следните аргументи:
- Ключова дума, указваща краищата, от които да се подрязват (по избор —
BOTH
по подразбиране). - Символът, който искате да отрежете от низа.
FROM
ключова дума, последвано от името на колоната на низа, която трябва да бъде изрязана.
В нашия пример това изглежда така:
TRIM( BOTH ' ' FROM title )
Както бе споменато по-горе, TRIM
може да приеме други ключови думи като свой първи аргумент. В допълнение към изрязването от двата края, той ни позволява да премахнем символ само от края на низ или само от началото:
TRAILING
(махнете от края)LEADING
(премахване от началото)
Примерът по-долу премахва пространството в края на всяко заглавие (но може също да се използва за отрязване на пространството в началото, ако използвате LEADING
ключова дума вместо това):
SELECT TRIM( TRAILING ' ' FROM title ) as new_title FROM post;
Заявката връща title
колона без интервал в края. Забележете, че интервалите в началото са оставени недокоснати.
ново_заглавие |
---|
„Новини за кучета“ |
„Евровизия 2019“ |
„Нов политически климат“ |