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

MySQL INT 필드 앞자리를 0으로 채우는 방법 (LPAD 함수 활용)

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()를 조합하는 방법이 더 유용합니다.