Problem:
Chcesz usunąć określone znaki z początku i końca ciągu.
Przykład:
Nasza baza danych zawiera tabelę o nazwie post
z danymi w dwóch kolumnach:id
i title
.
id | tytuł |
---|---|
1 | 'Wiadomości o psach' |
3 | „Eurowizja 2019” |
4 | 'Nowy klimat polityczny' |
Przytnijmy tytuł każdego posta, aby usunąć niepotrzebne miejsce na początku i na końcu.
Rozwiązanie:
Użyjemy TRIM
funkcjonować. Oto zapytanie, które możesz napisać:
SELECT TRIM( BOTH ' ' FROM title ) as new_title FROM post;
Alternatywnie możesz użyć krótszej wersji bez BOTH
słowo kluczowe; domyślnie TRIM
potraktuje to jako OBYDWĄ operację.
SELECT TRIM(' ' FROM title ) as new_title FROM post;
Oto wynik obu zapytań:
new_title |
---|
„Wiadomości o psach” |
„Eurowizja 2019” |
„Nowy klimat polityczny” |
Dyskusja:
Użyj TRIM
funkcja, jeśli chcesz przyciąć ciąg w tabeli. Ta funkcja umożliwia usunięcie określonego znaku z początku lub końca ciągu lub z obu końców. Ta funkcja przyjmuje następujące argumenty:
- Słowo kluczowe określające końce, od których należy przyciąć (opcjonalnie —
BOTH
domyślnie). - Znak, który chcesz wyciąć z ciągu.
FROM
słowo kluczowe, po którym następuje nazwa kolumny ciągu do przycięcia.
W naszym przykładzie wygląda to tak:
TRIM( BOTH ' ' FROM title )
Jak wspomniano powyżej, TRIM
może przyjąć inne słowa kluczowe jako pierwszy argument. Oprócz przycinania z obu końców, pozwala nam usunąć znak tylko z końca ciągu lub tylko z początku:
TRAILING
(usuń z końca)LEADING
(usuń od początku)
Poniższy przykład usuwa spację na końcu każdego tytułu (ale równie dobrze może być użyty do przycięcia spacji na początku, jeśli użyjesz LEADING
zamiast tego słowa kluczowego):
SELECT TRIM( TRAILING ' ' FROM title ) as new_title FROM post;
Zapytanie zwraca title
kolumna bez spacji na końcu. Zwróć uwagę, że spacje na początku pozostają nietknięte.
new_title |
---|
„Wiadomości o psach” |
„Eurowizja 2019” |
„Nowy klimat polityczny” |