MySQL에서 열의 값 앞에 선행 0(leading zeros)을 추가하려면 LPAD() 함수를 사용하면 됩니다. LPAD는 문자열을 지정한 길이가 될 때까지 왼쪽을 특정 문자로 채워 주는 함수로, 형식은 LPAD(문자열, 총길이, 채울문자) 입니다.
예제를 통해 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable ( Code varchar(100) ); Query OK, 0 rows affected (0.87 sec)
2. 데이터 삽입
INSERT 명령어를 사용해 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable values('JS');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('CB');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('DM');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('CT');
Query OK, 1 row affected (0.07 sec)3. 전체 레코드 확인
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+------+ | Code | +------+ | JS | | CB | | DM | | CT | +------+ 4 rows in set (0.00 sec)
4. LPAD()로 선행 0 추가하기
이제 UPDATE 문과 함께 LPAD() 함수를 사용해 Code 열의 값을 총 8자리가 되도록 앞부분을 '0'으로 채워 보겠습니다.
mysql> update DemoTable set Code=LPAD(Code, 8, '0'); Query OK, 4 rows affected (0.10 sec) Rows matched: 4 Changed: 4 Warnings: 0
5. 변경된 결과 확인
테이블의 레코드를 다시 한번 조회해 봅니다.
mysql> select *from DemoTable;
모든 값이 8자리가 되도록 앞에 0이 채워진 것을 확인할 수 있습니다.
+----------+ | Code | +----------+ | 000000JS | | 000000CB | | 000000DM | | 000000CT | +----------+ 4 rows in set (0.00 sec)
이처럼 LPAD() 함수를 활용하면 코드나 번호처럼 고정 자릿수가 필요한 데이터의 앞자리를 손쉽게 0으로 채울 수 있습니다. 반대로 오른쪽을 채우고 싶다면 RPAD() 함수를 사용하면 됩니다.