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

MySQL에서 여러 행을 업데이트하며 왼쪽 패딩(LPAD) 적용하는 방법

MySQL에서 LPAD() 함수를 사용하면 값의 왼쪽에 특정 문자를 채워 원하는 길이로 맞출 수 있습니다. 이 글에서는 조건에 맞는 여러 행을 한 번에 업데이트하면서 왼쪽 패딩을 적용하는 방법을 예제와 함께 살펴보겠습니다.

1. 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> Number int
-> );
Query OK, 0 rows affected (2.26 sec)

2. 데이터 삽입

insert 명령을 사용하여 테이블에 샘플 레코드를 삽입합니다.

mysql> insert into DemoTable values(857786);
Query OK, 1 row affected (0.26 sec)

mysql> insert into DemoTable values(89696);
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values(89049443);
Query OK, 1 row affected (0.25 sec)

3. 데이터 확인

select 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

출력 결과

+----------+
| Number |
+----------+
| 857786 |
| 89696 |
| 89049443 |
+----------+
3 rows in set (0.00 sec)

4. 여러 행 업데이트 및 왼쪽 패딩 적용

다음은 길이가 7자 미만인 값들만 골라서 왼쪽에 '9'를 채워 7자리로 만드는 UPDATE 쿼리입니다.

mysql> update DemoTable set Number=LPAD(Number, 7, "9") where length(Number) < 7;
Query OK, 2 rows affected (0.40 sec)
Rows matched: 2 Changed: 2 Warnings: 0

쿼리 동작 방식:

  • LPAD(Number, 7, "9") — Number 값을 전체 길이가 7자리가 될 때까지 왼쪽에 '9'를 채웁니다.
  • where length(Number) < 7 — 이미 7자리 이상인 값은 그대로 유지하고, 7자리 미만인 행만 업데이트 대상으로 제한합니다.

5. 결과 확인

업데이트 후 테이블을 다시 한번 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+----------+
| Number |
+----------+
| 9857786 |
| 9989696 |
| 89049443 |
+----------+
3 rows in set (0.00 sec)

실행 결과를 보면, 기존에 7자리 미만이었던 857786과 89696이 각각 9857786, 9989696으로 변환되어 왼쪽에 '9'가 채워진 것을 확인할 수 있습니다. 반면 이미 8자리였던 89049443은 WHERE 조건에 해당하지 않기 때문에 변경되지 않고 그대로 유지됩니다.