Problem:
Du vill ta bort specifika tecken från början och slutet av en sträng.
Exempel:
Vår databas har en tabell som heter post
med data i två kolumner:id
och titel
.
id | titel |
---|---|
1 | ' Nyheter om hundar ' |
3 | 'Eurovision 2019' |
4 | 'Nytt politiskt klimat' |
Låt oss trimma rubriken på varje inlägg för att ta bort onödigt utrymme i början och slutet.
Lösning:
Vi använder TRIM
fungera. Här är frågan du skulle skriva:
SELECT TRIM( BOTH ' ' FROM title ) as new_title FROM post;
Alternativt kan du använda den kortare versionen utan BOTH
nyckelord; som standard, TRIM
kommer att behandla detta som en BÅDA operation.
SELECT TRIM(' ' FROM title ) as new_title FROM post;
Här är resultatet av båda frågorna:
new_title |
---|
'Nyheter om hundar' |
'Eurovision 2019' |
'Nytt politiskt klimat' |
Diskussion:
Använd TRIM
funktion om du vill trimma en sträng i en tabell. Denna funktion låter dig ta bort ett specifikt tecken från början eller slutet av en sträng, eller från båda ändarna. Den här funktionen tar följande argument:
- Ett sökord som anger ändarna som ska trimmas från (valfritt—
BÅDA
som standard). - Tecknet du vill trimma från strängen.
-
FRÅN nyckelord, följt av namnet på strängkolumnen som ska trimmas.
I vårt exempel ser det ut så här:
TRIM( BOTH ' ' FROM title )
Som nämnts ovan, TRIM
kan ta andra nyckelord som sitt första argument. Förutom att trimma från båda ändarna tillåter det oss att ta bort ett tecken bara från slutet av en sträng eller bara från början:
TRAILING
(ta bort från slutet)LEDANDE
(ta bort från början)
Exemplet nedan tar bort utrymmet i slutet av varje titel (men kan lika gärna användas för att trimma utrymmet i början om du använder LEADING
sökord istället):
SELECT TRIM( TRAILING ' ' FROM title ) as new_title FROM post;
Frågan returnerar titel
kolumn utan mellanslag i slutet. Lägg märke till att mellanslagen i början lämnas orörda.
new_title |
---|
‘ Nyheter om hundar’ |
'Eurovision 2019' |
'Nytt politiskt klimat' |