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

MySQL에서 VARCHAR 값의 마지막 문자를 삭제하고 새로운 두 자리 숫자로 수정하는 방법

MySQL에서 VARCHAR 타입으로 선언된 컬럼의 값 끝자리(마지막 문자)를 삭제하고, 그 자리에 새로운 두 자리 숫자를 덧붙여 수정하는 방법을 알아보겠습니다. 이 작업에는 UPDATE 문과 CONCAT(), SUBSTRING(), LENGTH() 함수를 함께 사용합니다.

1. 테이블 생성

먼저 Value 컬럼을 VARCHAR(100) 타입으로 선언하여 테이블을 생성합니다.

mysql> create table DemoTable
(
    Value varchar(100)
);
Query OK, 0 rows affected (1.80 sec)

2. 샘플 데이터 삽입

insert 명령어를 사용해 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable values('100');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('1244');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('15789');
Query OK, 1 row affected (0.18 sec)

3. 전체 데이터 조회

select 문으로 테이블에 저장된 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

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

+-------+
| Value |
+-------+
| 100   |
| 1244  |
| 15789 |
+-------+
3 rows in set (0.07 sec)

4. 마지막 문자 삭제 후 새 값 추가

다음은 각 값의 마지막 문자를 제거하고, 그 자리에 새로운 두 자리 숫자 '55'를 이어 붙이는 UPDATE 쿼리입니다.

mysql> update DemoTable set Value=concat(substring(Value,1,length(Value)-1), '55');
Query OK, 3 rows affected (0.23 sec)
Rows matched: 3 Changed: 3 Warnings: 0

쿼리 동작 원리를 살펴보면 다음과 같습니다.

  • length(Value)-1 : 값의 전체 길이에서 1을 빼 마지막 문자를 제외한 길이를 구합니다.
  • substring(Value,1,length(Value)-1) : 첫 번째 문자부터 마지막 문자 바로 앞까지만 잘라냅니다.
  • concat(..., '55') : 잘라낸 문자열 뒤에 새로운 값 '55'를 연결합니다.

5. 결과 확인

수정된 테이블을 다시 한번 조회해 보겠습니다.

mysql> select *from DemoTable;

모든 값의 마지막 문자가 제거되고 '55'가 추가된 것을 확인할 수 있습니다.

+--------+
| Value  |
+--------+
| 1055   |
| 12455  |
| 157855 |
+--------+
3 rows in set (0.00 sec)

이처럼 CONCAT()과 SUBSTRING() 함수를 조합하면 VARCHAR 값의 특정 위치 문자를 손쉽게 교체할 수 있습니다. 다만 위 쿼리는 테이블의 모든 행에 적용되므로, 실무에서는 WHERE 절을 추가해 원하는 조건의 행만 선택적으로 수정하는 것이 안전합니다.