Проблем:
Искате да премахнете конкретни знаци от началото и края на низ.
Пример:
Нашата база данни има таблица с име 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“ |
| „Нов политически климат“ |