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

MySQL에서 문자열의 첫 번째 숫자 제거하기 – SUBSTR() 함수 활용법

MySQL에서 문자열이나 숫자로 저장된 값의 첫 번째 자릿수를 제거해야 하는 경우가 종종 있습니다. 예를 들어, 불필요한 접두어가 붙은 데이터를 정리하거나 특정 형식에 맞게 값을 가공할 때 유용합니다. 이럴 때는 SUBSTR() 함수를 사용하면 간단하게 해결할 수 있습니다.

SUBSTR() 함수 기본 문법

SUBSTR() 함수는 문자열의 지정한 위치부터 잘라내어 반환하는 함수입니다. 두 번째 인자를 2로 지정하면 첫 번째 문자를 건너뛰고 두 번째 문자부터 끝까지 반환하게 됩니다.

UPDATE 테이블명 SET 컬럼명 = SUBSTR(컬럼명, 2);

예제 테이블 생성하기

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

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

샘플 데이터 삽입하기

INSERT 명령을 사용하여 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable607 values('83967364');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable607 values('10939432');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable607 values('932111');
Query OK, 1 row affected (0.16 sec)

현재 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable607;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----------+
| Value    |
+----------+
| 83967364 |
| 10939432 |
| 932111   |
+----------+
3 rows in set (0.00 sec)

첫 번째 숫자를 제거하는 UPDATE 쿼리 실행

이제 SUBSTR() 함수를 활용하여 각 값의 첫 번째 자릿수를 제거하는 쿼리를 실행해 보겠습니다.

mysql> update DemoTable607 set Value=substr(Value,2);
Query OK, 3 rows affected (0.14 sec)
Rows matched: 3 Changed: 3 Warnings: 0

결과 확인하기

업데이트 후 다시 한번 테이블을 조회하여 변경된 내용을 확인합니다.

mysql> select *from DemoTable607;

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

+---------+
| Value   |
+---------+
| 3967364 |
| 0939432 |
| 32111   |
+---------+
3 rows in set (0.00 sec)

주의사항 및 참고 사항

위 출력 결과를 보면 알 수 있듯이, 값이 VARCHAR 타입으로 저장되어 있기 때문에 앞자리가 '0'인 경우(0939432)에도 그대로 유지됩니다. 만약 컬럼이 INT와 같은 숫자형 타입이라면 선행 0은 자동으로 사라지므로 주의해야 합니다.

또한, 이 방법은 모든 행에 일괄 적용되므로 특정 조건의 행만 수정하고 싶다면 WHERE 절을 함께 사용하는 것이 좋습니다.

UPDATE 테이블명 SET 컬럼명 = SUBSTR(컬럼명, 2) WHERE 조건;

이처럼 MySQL의 SUBSTR() 함수를 활용하면 별도의 프로그래밍 로직 없이 SQL 쿼리만으로 문자열의 첫 번째 자릿수를 손쉽게 제거할 수 있습니다.