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

MySQL에서 모든 레코드의 처음 두 문자를 제거하는 방법

MySQL에서 모든 필드(레코드)의 처음 두 문자를 제거하려면 SUBSTRING() 함수를 사용해야 합니다. SUBSTRING() 함수는 문자열에서 지정한 위치부터 시작하는 부분 문자열을 반환하므로, 시작 위치를 3으로 설정하면 앞의 두 문자가 자연스럽게 제거됩니다.

SUBSTRING() 함수 기본 문법

UPDATE yourTableName SET yourColumnName=SUBSTRING(yourColumnName,3)
WHERE yourCondition;

WHERE 절에 조건을 추가하면 특정 레코드만 선택적으로 수정할 수도 있습니다. 위 문법을 실제로 이해하기 위해 예제 테이블을 만들어 보겠습니다.

예제 테이블 생성

테이블 생성 쿼리는 다음과 같습니다.

mysql> create table RemoveFirstTwoCharacterDemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> StringValue varchar(30),
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (1.04 sec)

샘플 데이터 삽입

insert 명령을 사용하여 테이블에 여러 개의 레코드를 삽입합니다. 쿼리는 다음과 같습니다.

mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('U:100');
Query OK, 1 row affected (0.13 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('S:20');
Query OK, 1 row affected (0.21 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('N/A');
Query OK, 1 row affected (0.12 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('T:8');
Query OK, 1 row affected (0.16 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('N/A');
Query OK, 1 row affected (0.12 sec)
mysql> insert into RemoveFirstTwoCharacterDemo(StringValue) values('W:99');
Query OK, 1 row affected (0.19 sec)

삽입된 데이터 확인

select 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from RemoveFirstTwoCharacterDemo;

출력 결과는 다음과 같습니다.

+----+-------------+
| Id | StringValue |
+----+-------------+
|  1 | U:100       |
|  2 | S:20        |
|  3 | N/A         |
|  4 | T:8         |
|  5 | N/A         |
|  6 | W:99        |
+----+-------------+
6 rows in set (0.00 sec)

처음 두 문자 제거 쿼리 실행

이제 'N/A' 값은 그대로 두고, 나머지 레코드에서만 앞의 두 문자를 제거하는 UPDATE 쿼리를 실행합니다.

mysql> update RemoveFirstTwoCharacterDemo set StringValue=SUBSTRING(StringValue,3)
    -> where StringValue <> 'N/A';
Query OK, 4 rows affected (0.27 sec)
Rows matched: 4 Changed: 4 Warnings: 0

변경 결과 확인

select 문으로 다시 한번 테이블의 레코드를 조회하여 변경 사항을 확인합니다.

mysql> select *from RemoveFirstTwoCharacterDemo;

출력 결과는 다음과 같습니다.

+----+-------------+
| Id | StringValue |
+----+-------------+
|  1 | 100         |
|  2 | 20          |
|  3 | N/A         |
|  4 | 8           |
|  5 | N/A         |
|  6 | 99          |
+----+-------------+
6 rows in set (0.00 sec)

출력 결과를 보면 'N/A' 값이 있는 레코드는 WHERE 조건에 의해 원본 그대로 유지되었고, 나머지 레코드에서는 접두사(U:, S:, T:, W:)가 성공적으로 제거되어 숫자 부분만 남은 것을 확인할 수 있습니다. 이처럼 SUBSTRING() 함수와 WHERE 절을 조합하면 원하는 레코드만 선택적으로 문자열을 가공할 수 있습니다.