Problem:
Du vil gerne fjerne bestemte tegn fra begyndelsen og slutningen af en streng.
Eksempel:
Vores database har en tabel med navnet post
med data i to kolonner:id
og titel
.
id | titel |
---|---|
1 | ' Nyheder om hunde ' |
3 | 'Eurovision 2019' |
4 | 'Nyt politisk klima' |
Lad os trimme titlen på hvert indlæg for at fjerne det unødvendige mellemrum i begyndelsen og slutningen.
Løsning:
Vi bruger TRIM
fungere. Her er den forespørgsel, du ville skrive:
SELECT TRIM( BOTH ' ' FROM title ) as new_title FROM post;
Alternativt kan du bruge den kortere version uden BOTH
søgeord; som standard TRIM
vil behandle dette som en BEGGE operation.
SELECT TRIM(' ' FROM title ) as new_title FROM post;
Her er resultatet af begge forespørgsler:
ny_titel |
---|
'Nyheder om hunde' |
'Eurovision 2019' |
'Nyt politisk klima' |
Diskussion:
Brug TRIM
funktion, hvis du vil trimme en streng i en tabel. Denne funktion giver dig mulighed for at fjerne et bestemt tegn fra begyndelsen eller slutningen af en streng eller fra begge ender. Denne funktion tager følgende argumenter:
- Et søgeord, der angiver enderne, hvorfra der skal trimmes (valgfrit –
BEGGE
som standard). - Det tegn, du vil trimme fra strengen.
FRA-koden> søgeord efterfulgt af navnet på den strengkolonne, der skal trimmes.
I vores eksempel ser det sådan ud:
TRIM( BOTH ' ' FROM title )
Som nævnt ovenfor, TRIM
kan tage andre søgeord som sit første argument. Ud over at trimme fra begge ender giver det os mulighed for kun at fjerne et tegn fra slutningen af en streng eller kun fra begyndelsen:
TRAILING
(fjern fra slutningen)FØRENDE
(fjern fra begyndelsen)
Eksemplet nedenfor fjerner mellemrummet i slutningen af hver titel (men kan lige så godt bruges til at trimme mellemrummet i begyndelsen, hvis du bruger LEADING
søgeord i stedet):
SELECT TRIM( TRAILING ' ' FROM title ) as new_title FROM post;
Forespørgslen returnerer titlen
kolonne uden mellemrum i slutningen. Bemærk, at mellemrummene i begyndelsen forbliver urørt.
ny_titel |
---|
‘Nyheder om hunde’ |
'Eurovision 2019' |
'Nyt politisk klima' |