Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL LPAD() 함수로 9자리 미만 숫자 앞에 0 채우는 방법

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자리 미만인 행만 처리하는 것이 안전합니다.