Soms moet je een string opvullen met spaties. Of misschien vul je het met een ander personage. Soms moet je het aan de linkerkant invullen. Andere keren moet je het aan de rechterkant invullen. Of misschien moet je het aan beide kanten opvullen.
Al het bovenstaande kan in MySQL worden gedaan met behulp van de LPAD()
en/of RPAD()
tekenreeksfuncties.
Syntaxis
De syntaxis van elk van deze functies gaat als volgt:
LPAD(str,len,padstr) RPAD(str,len,padstr)
Waar str
is de string die moet worden opgevuld, len
is de gewenste lengte van de tekenreeks in tekens nadat alle opvulling is toegepast, en padstr
is de tekenreeks om het mee op te vullen.
Voorbeeld – LPAD()
Hier is een voorbeeld van het opvullen van de linkerkant van een tekenreeks:
SELECT LPAD('Cat', 6, '*') AS Result;
Resultaat:
+--------+ | Result | +--------+ | ***Cat | +--------+
In dit voorbeeld vullen we de string in met het asterisk-teken (*
). We specificeren ook 6
, wat betekent dat de hele string uiteindelijk 6 tekens lang moet zijn nadat alle opvulling is toegepast.
Dus als we de 6
. veranderen om te zeggen, 10
, dit is wat er gebeurt:
SELECT LPAD('Cat', 10, '*') AS Result;
Resultaat:
+------------+ | Result | +------------+ | *******Cat | +------------+
Voorbeeld – RPAD()
De RPAD()
functie werkt precies hetzelfde als LPAD()
, met de uitzondering dat het de tekens aan de rechts toevoegt kant van de string:
SELECT RPAD('Cat', 6, '*') AS Result;
Resultaat:
+--------+ | Result | +--------+ | Cat*** | +--------+
Voorbeeld – Beide
U kunt beide functies samen gebruiken om een string aan beide zijden op te vullen. Om dit te doen, geeft u eenvoudig de ene functie door aan de andere als argument.
Zoals dit:
SELECT LPAD(RPAD('Cat', 6, '*'), 9, '*') AS Result;
Resultaat:
+-----------+ | Result | +-----------+ | ***Cat*** | +-----------+
Meerdere tekens
Je bent niet beperkt tot slechts een enkel teken. U kunt een string met een willekeurig aantal tekens opvullen. Hier is een voorbeeld:
SELECT RPAD('She Loves Me ', 30, 'Yeah! ') AS Result;
Resultaat:
+--------------------------------+ | Result | +--------------------------------+ | She Loves Me Yeah! Yeah! Yeah! | +--------------------------------+