MySQL에는 LPAD()와 RPAD()라는 두 가지 함수가 있으며, 이를 활용하면 하나의 문자열을 다른 문자열로 채워서(pad) 원하는 길이의 결과를 얻을 수 있습니다.
LPAD() 함수 – 왼쪽부터 문자열 채우기
LPAD() 함수는 이름 그대로 원본 문자열의 왼쪽에 지정한 문자열을 덧붙여 채우는 기능을 합니다. MySQL에서 사용하는 기본 문법은 다음과 같습니다.
문법
LPAD(original_string, @length, pad_string)
각 인자의 의미는 다음과 같습니다.
- original_string: 다른 문자열로 채워질 원본 문자열입니다.
- @length: 문자열을 채운 후 최종적으로 반환될 전체 길이입니다.
- pad_string: 원본 문자열을 채우는 데 사용되는 문자열입니다.
예제
mysql> SELECT LPAD('tutorialspoint',18,'www.');
+----------------------------------+
| LPAD('tutorialspoint',18,'www.') |
+----------------------------------+
| www.tutorialspoint |
+----------------------------------+
1 row in set (0.00 sec)위 예제에서 'tutorialspoint'라는 문자열(15자)은 전체 길이 18자가 되도록 왼쪽에 'www.'로 채워져 'www.tutorialspoint'라는 결과를 반환합니다.
RPAD() 함수 – 오른쪽부터 문자열 채우기
RPAD() 함수는 LPAD()와 반대로 원본 문자열의 오른쪽에 지정한 문자열을 덧붙여 채우는 기능을 합니다. 사용 문법은 다음과 같습니다.
문법
RPAD(original_string, @length, pad_string)
각 인자의 의미는 LPAD()와 동일합니다.
- original_string: 다른 문자열로 채워질 원본 문자열입니다.
- @length: 문자열을 채운 후 최종적으로 반환될 전체 길이입니다.
- pad_string: 원본 문자열을 채우는 데 사용되는 문자열입니다.
예제
mysql> SELECT RPAD('www.tutorialspoint',22,'.com');
+--------------------------------------+
| RPAD('www.tutorialspoint',22,'.com') |
+--------------------------------------+
| www.tutorialspoint.com |
+--------------------------------------+
1 row in set (0.06 sec)위 예제에서 'www.tutorialspoint'(18자)는 전체 길이 22자가 되도록 오른쪽에 '.com'으로 채워져 'www.tutorialspoint.com'이라는 결과를 반환합니다.
참고 사항
두 함수 모두 지정한 @length가 원본 문자열보다 짧으면, 패딩 없이 원본 문자열을 해당 길이만큼 잘라서 반환한다는 점에 유의하세요. 또한 pad_string이 반복 적용되어 목표 길이를 초과할 경우, 초과분은 자동으로 잘려나갑니다.