MySQL에서 INT 필드의 시작 부분(앞자리)을 0으로 채우려면 LPAD() 함수를 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 단계별로 자세히 살펴보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table paddingDemo -> ( -> Number int -> ); Query OK, 0 rows affected (0.49 sec)
2. 데이터 삽입하기
INSERT 명령어를 사용해 테이블에 샘플 레코드를 삽입합니다.
mysql> insert into paddingDemo values(78); Query OK, 1 row affected (0.14 sec) mysql> insert into paddingDemo values(560); Query OK, 1 row affected (0.17 sec) mysql> insert into paddingDemo values(888995); Query OK, 1 row affected (0.13 sec) mysql> insert into paddingDemo values(999994); Query OK, 1 row affected (0.15 sec)
3. 저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select * from paddingDemo;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+--------+ | Number | +--------+ | 78 | | 560 | | 888995 | | 999994 | +--------+ 4 rows in set (0.00 sec)
4. LPAD()로 앞자리 0 채우기
LPAD() 함수는 문자열의 왼쪽을 지정한 문자로 채워 원하는 전체 길이를 맞춰주는 함수입니다. INT 타입은 직접 패딩할 수 없기 때문에, 먼저 CONVERT()로 문자열로 변환한 뒤 적용해야 합니다.
mysql> select LPAD(CONVERT(Number,char(8)),10,'0') AS paddingWithZeros from paddingDemo;
실행 결과는 다음과 같습니다.
+------------------+ | paddingWithZeros | +------------------+ | 0000000078 | | 0000000560 | | 0000888995 | | 0000999994 | +------------------+ 4 rows in set (0.00 sec)
결과를 보면 모든 숫자가 총 10자리 길이로 맞춰졌고, 부족한 자릿수만큼 앞에 0이 채워진 것을 확인할 수 있습니다.
참고: ZEROFILL 옵션
컬럼을 정의할 때 ZEROFILL 속성을 사용하면 조회 시 값의 앞자리를 자동으로 0으로 채워 표시할 수도 있습니다. 다만 출력 형식을 유연하게 제어하고 싶다면, 위 예제처럼 LPAD()와 CONVERT()를 조합하는 방법이 더 유용합니다.