In MySQL, the RPAD()
function allows you to pad the right part of a string with one or more characters.
The way it works is, you specify the string to pad, the length of the padding, as well as the string of characters to use for the padding.
Syntax
The syntax goes like this:
RPAD(str,len,padstr)
Where str
is the string to pad, len
is the desired length of the string in characters after all padding has been applied, and padstr
is the string to pad it with.
Example 1 – Basic Usage
Here’s an example of padding the right part of a string with an exclamation mark:
SELECT RPAD('Cat', 6, '!') AS Result;
Result:
+--------+ | Result | +--------+ | Cat!!! | +--------+
In this example the second argument is 6
, which means that the whole string must end up being 6 characters in length after all padding has been applied. The third argument specifies which character to use for the padding.
So in this case, if we only want one exclamation mark, we can do this:
SELECT RPAD('Cat', 4, '!') AS Result;
Result:
+--------+ | Result | +--------+ | Cat! | +--------+
Example 2 – Multiple Characters
You aren’t limited to just a single character. You can pad a string with any number of characters.
For example, we could take the previous example and add a space before the exclamation mark:
SELECT RPAD('Cat', 5, ' !') AS Result;
Result:
+--------+ | Result | +--------+ | Cat ! | +--------+
Note that we also increased the character count to 5
in order to accommodate the extra character.
Here’s another example using different characters:
SELECT RPAD('Dog', 7, 'gone') AS Result;
Result:
+---------+ | Result | +---------+ | Doggone | +---------+
Example 3 – Second Argument is Too Small
If the value of the second argument is too small, you might end up with no padding:
SELECT RPAD('Cat', 3, '!') AS Result;
Result:
+--------+ | Result | +--------+ | Cat | +--------+
In other cases, you could end up with the padding string being cut short, or could even cut the original string short:
SELECT RPAD('Dog', 6, 'gone'), RPAD('Dog', 2, 'gone');
Result:
+------------------------+------------------------+ | RPAD('Dog', 6, 'gone') | RPAD('Dog', 2, 'gone') | +------------------------+------------------------+ | Doggon | Do | +------------------------+------------------------+
Note that these examples are for demonstration purposes only. In most cases, you wouldn’t use RPAD()
to simply join two words together. To do that, you’d be better off using CONCAT()
instead.
Example 4 – A Database Example
Here’s an example of selecting data from a database, and padding it on its right side:
SELECT ArtistName, RPAD(ArtistName, 20, '.') FROM Artists;
Result:
+------------------------+---------------------------+ | ArtistName | RPAD(ArtistName, 20, '.') | +------------------------+---------------------------+ | Iron Maiden | Iron Maiden......... | | AC/DC | AC/DC............... | | Allan Holdsworth | Allan Holdsworth.... | | Buddy Rich | Buddy Rich.......... | | Devin Townsend | Devin Townsend...... | | Jim Reeves | Jim Reeves.......... | | Tom Jones | Tom Jones........... | | Maroon 5 | Maroon 5............ | | The Script | The Script.......... | | Lit | Lit................. | | Black Sabbath | Black Sabbath....... | | Michael Learns to Rock | Michael Learns to Ro | | Carabao | Carabao............. | | Karnivool | Karnivool........... | | Birds of Tokyo | Birds of Tokyo...... | | Bodyjar | Bodyjar............. | +------------------------+---------------------------+