sql >> Databasteknik >  >> RDS >> Mysql

Hur man vadderar en sträng med ledande/släpande tecken i MySQL – LPAD(), RPAD()

Ibland behöver du vaddera ett snöre med mellanslag. Eller så kanske du fyller den med en annan karaktär. Ibland behöver du vaddera den till vänster. Andra gånger behöver du vaddera den till höger. Eller så kanske du behöver stoppa den på båda sidor.

Allt ovanstående kan göras i MySQL med LPAD() och/eller RPAD() strängfunktioner.

Syntax

Syntaxen för var och en av dessa funktioner ser ut så här:

LPAD(str,len,padstr)
RPAD(str,len,padstr)

Där str är strängen som behöver utfyllnad, len är den önskade längden på strängen i tecken efter att all utfyllnad har tillämpats, och padstr är strängen att stoppa den med.

Exempel – LPAD()

Här är ett exempel på vaddering av vänster sida av en sträng:

SELECT LPAD('Cat', 6, '*') AS Result;

Resultat:

+--------+
| Result |
+--------+
| ***Cat |
+--------+

I det här exemplet fyller vi strängen med asterisktecknet (* ). Vi anger även 6 , vilket innebär att hela strängen måste vara 6 tecken lång efter att all utfyllnad har tillämpats.

Så om vi ändrar 6 att säga, 10 , här är vad som händer:

SELECT LPAD('Cat', 10, '*') AS Result;

Resultat:

+------------+
| Result     |
+------------+
| *******Cat |
+------------+

Exempel – RPAD()

RPAD() Funktionen fungerar exakt på samma sätt som LPAD() , med undantaget att den lägger till tecknen till höger sida av strängen:

SELECT RPAD('Cat', 6, '*') AS Result;

Resultat:

+--------+
| Result |
+--------+
| Cat*** |
+--------+

Exempel – Båda

Du kan använda båda funktionerna tillsammans för att vaddera ett snöre på båda sidor. För att göra detta, skicka helt enkelt en funktion till den andra som ett argument.

Så här:

SELECT LPAD(RPAD('Cat', 6, '*'), 9, '*') AS Result;

Resultat:

+-----------+
| Result    |
+-----------+
| ***Cat*** |
+-----------+

Flera tecken

Du är inte begränsad till en enda karaktär. Du kan fylla på en sträng med valfritt antal tecken. Här är ett exempel:

SELECT RPAD('She Loves Me ', 30, 'Yeah! ') AS Result;

Resultat:

+--------------------------------+
| Result                         |
+--------------------------------+
| She Loves Me Yeah! Yeah! Yeah! |
+--------------------------------+


  1. SSIS-uppgift för import av inkonsekvent kolumnantal?

  2. Hur kan jag göra HTTP-förfrågan från SQL-servern?

  3. MySQL och GROUP_CONCAT() maxlängd

  4. Hur IFNULL() fungerar i MariaDB