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

MySQL에서 열 값에 선행 0(Leading Zero) 추가하는 방법 – LPAD() 함수 완벽 가이드

MySQL에서 특정 값 앞에 선행 0(leading zero)을 추가하려면 LPAD() 함수를 사용하면 됩니다. LPAD는 문자열의 왼쪽을 지정한 길이만큼 특정 문자로 채워주는 함수로, 사원번호·주문번호·상품코드처럼 자릿수를 고정해야 하는 데이터를 다룰 때 매우 유용합니다.

LPAD() 함수 기본 문법

기본 문법은 다음과 같습니다.

select lpad(yourColumnName, lengthofColumnValue+1, 0) from yourTableName;

첫 번째 인수는 대상 컬럼 또는 문자열, 두 번째 인수는 결과 문자열의 전체 길이, 세 번째 인수는 부족한 자릿수를 채울 문자입니다.

간단한 예제

LPAD() 함수의 동작을 간단히 확인해 보겠습니다.

mysql> select lpad('98765432',9,0);

실행 결과는 다음과 같습니다.

+----------------------+
| lpad('98765432',9,0) |
+----------------------+
| 098765432 |
+----------------------+
1 row in set (0.00 sec)

'98765432'는 8자리이므로, 전체 길이를 9로 지정하면 앞에 '0'이 하나 채워져 '098765432'가 반환됩니다.

실전 예제: 테이블 생성 및 데이터 삽입

실제 환경에서 직접 확인해 보기 위해 먼저 테스트용 테이블을 생성합니다.

mysql> create table leadingZeroDemo
-> (
-> Id varchar(200)
-> );
Query OK, 0 rows affected (0.63 sec)

이제 INSERT 명령으로 몇 개의 레코드를 삽입합니다.

mysql> insert into leadingZeroDemo values('2345');
Query OK, 1 row affected (0.17 sec)

mysql> insert into leadingZeroDemo values('1234');
Query OK, 1 row affected (0.16 sec)

mysql> insert into leadingZeroDemo values('9876');
Query OK, 1 row affected (0.14 sec)

mysql> insert into leadingZeroDemo values('4321');
Query OK, 1 row affected (0.13 sec)

테이블에 저장된 모든 레코드를 조회하여 확인합니다.

mysql> select *from leadingZeroDemo;

출력 결과는 다음과 같습니다.

+------+
| Id |
+------+
| 2345 |
| 1234 |
| 9876 |
| 4321 |
+------+
4 rows in set (0.00 sec)

LPAD() 함수 적용하기

이제 LPAD() 함수를 적용하여 각 값 앞에 선행 0을 추가합니다. 아래 쿼리는 4자리 값을 5자리로 만들며, 부족한 한 자리를 '0'으로 채웁니다.

mysql> select lpad(Id,5,0) from leadingZeroDemo;

선행 0이 추가된 최종 결과는 다음과 같습니다.

+--------------+
| lpad(Id,5,0) |
+--------------+
| 02345 |
| 01234 |
| 09876 |
| 04321 |
+--------------+
4 rows in set (0.00 sec)

마무리 정리

LPAD() 함수는 ① 원본 문자열(또는 컬럼), ② 최종 길이, ③ 채울 문자라는 세 가지 인수를 받습니다. 이처럼 LPAD()를 활용하면 복잡한 별도 처리 없이 손쉽게 선행 0을 추가할 수 있습니다. 반대로 문자열의 오른쪽을 채워야 하는 경우에는 RPAD() 함수를 사용하면 되니, 상황에 맞게 활용해 보시기 바랍니다.