Probleem:
U wilt specifieke tekens aan het begin en einde van een tekenreeks verwijderen.
Voorbeeld:
Onze database heeft een tabel met de naam post
met gegevens in twee kolommen:id
en title
.
id | titel |
---|---|
1 | ' Nieuws over honden ' |
3 | 'Eurovisie 2019 ' |
4 | 'Nieuw politiek klimaat' |
Laten we de titel van elk bericht inkorten om de onnodige ruimte aan het begin en einde te verwijderen.
Oplossing:
We gebruiken de TRIM
functie. Dit is de vraag die je zou schrijven:
SELECT TRIM( BOTH ' ' FROM title ) as new_title FROM post;
Als alternatief kunt u de kortere versie gebruiken zonder de BOTH
trefwoord; standaard TRIM
zal dit als BEIDE operatie behandelen.
SELECT TRIM(' ' FROM title ) as new_title FROM post;
Dit is het resultaat van beide zoekopdrachten:
new_title |
---|
'Nieuws over honden' |
'Eurovisie 2019' |
'Nieuw politiek klimaat' |
Discussie:
Gebruik de TRIM
functie als u een string in een tabel wilt inkorten. Met deze functie kunt u een specifiek teken aan het begin of einde van een tekenreeks verwijderen, of aan beide uiteinden. Deze functie heeft de volgende argumenten:
- Een trefwoord dat de uiteinden aangeeft waarvan moet worden afgesneden (optioneel—
BOTH
standaard). - Het teken dat u uit de tekenreeks wilt verwijderen.
- De
FROM
trefwoord, gevolgd door de naam van de tekenreekskolom die moet worden bijgesneden.
In ons voorbeeld ziet dat er als volgt uit:
TRIM( BOTH ' ' FROM title )
Zoals hierboven vermeld, TRIM
kan andere trefwoorden als eerste argument nemen. Naast het trimmen van beide uiteinden, kunnen we een teken alleen aan het einde van een tekenreeks of alleen vanaf het begin verwijderen:
TRAILING
(verwijder aan het einde)LEADING
(verwijderen vanaf het begin)
In het onderstaande voorbeeld wordt de spatie aan het einde van elke titel verwijderd (maar kan net zo goed worden gebruikt om de spatie aan het begin in te korten als u de LEADING
gebruikt zoekwoord in plaats daarvan):
SELECT TRIM( TRAILING ' ' FROM title ) as new_title FROM post;
De zoekopdracht retourneert de title
kolom zonder spatie aan het einde. Merk op dat de spaties aan het begin onaangeroerd blijven.
new_title |
---|
‘ Nieuws over honden’ |
'Eurovisie 2019' |
‘Nieuw politiek klimaat’ |