MySQL에서 9자리 미만 숫자에 0을 추가하는 방법
MySQL에서는 LPAD() 함수를 사용하면 9자리보다 짧은 숫자의 왼쪽에 0을 손쉽게 채울 수 있습니다. LPAD()는 문자열의 왼쪽을 지정한 문자로 패딩하여 원하는 길이를 맞춰주는 함수입니다.
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
Value varchar(20)
);
Query OK, 0 rows affected (0.55 sec)insert 명령을 사용해 몇 개의 레코드를 삽입합니다.
mysql> insert into DemoTable values('3646465');
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable values('9485757591');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('485756');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('959585');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('124');
Query OK, 1 row affected (0.27 sec)select 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
위 쿼리는 다음과 같은 결과를 출력합니다.
+------------+ | Value | +------------+ | 3646465 | | 9485757591 | | 485756 | | 959585 | | 124 | +------------+ 5 rows in set (0.00 sec)
이제 9자리 미만인 숫자들의 왼쪽에 0을 채우기 위해 다음과 같이 LPAD() 함수를 사용한 쿼리를 실행합니다.
mysql> select lpad(Value,9,'0') from DemoTable;
실행 결과는 아래와 같습니다.
+-------------------+ | lpad(Value,9,'0') | +-------------------+ | 003646465 | | 948575759 | | 000485756 | | 000959585 | | 000000124 | +-------------------+ 5 rows in set (0.03 sec)
결과 분석
LPAD(Value, 9, '0')는 Value 값을 총 9자리가 되도록 왼쪽에 '0'을 채웁니다. 예를 들어 '124'는 '000000124'로 변환되고, '3646465'는 '003646465'로 변환됩니다.
다만 주의할 점이 있습니다. 이미 10자리인 '9485757591'처럼 지정한 길이(9자리)보다 긴 값은 잘려서 '948575759'로 반환됩니다. 따라서 데이터 길이가 일정하지 않은 경우에는 LENGTH() 함수와 조건문(WHERE 절)을 함께 사용해 9자리 미만인 행만 처리하는 것이 안전합니다.