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 —
BOTHdomyślnie). - Znak, który chcesz wyciąć z ciągu.
FROMsł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” |