MySQL에서 문자열의 첫 번째 문자만 제거하고 싶다면 substr() 함수와 UPDATE 명령어를 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.
UPDATE yourTableName set yourColumnName=substr(yourColumnName,2);
여기서 substr(컬럼명, 2)은 두 번째 위치부터 끝까지의 문자를 반환하기 때문에, 결과적으로 첫 번째 문자가 잘려나가게 됩니다.
예제 테이블 생성하기
문법을 실제로 이해하기 위해 먼저 테이블을 생성해 보겠습니다.
mysql> create table CutStringDemo -> ( -> Value varchar(100) -> ); Query OK, 0 rows affected (0.66 sec)
이제 INSERT 명령어를 사용해 몇 개의 레코드를 삽입합니다. 각 값은 쉼표(,)로 시작하는 문자열입니다.
mysql> insert into CutStringDemo values(',12,3456');
Query OK, 1 row affected (0.14 sec)
mysql> insert into CutStringDemo values(',23,9867');
Query OK, 1 row affected (0.16 sec)
mysql> insert into CutStringDemo values(',20,3212');
Query OK, 1 row affected (0.12 sec)
mysql> insert into CutStringDemo values(',23456,1234');
Query OK, 1 row affected (0.14 sec)SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from CutStringDemo;
실행 결과는 다음과 같습니다.
+-------------+ | Value | +-------------+ | ,12,3456 | | ,23,9867 | | ,20,3212 | | ,23456,1234 | +-------------+ 4 rows in set (0.00 sec)
첫 번째 문자 잘라내기
이제 Value 컬럼에서 첫 번째 문자를 잘라내 보겠습니다. 실행할 쿼리는 다음과 같습니다.
mysql> update CutStringDemo set Value=substr(Value,2); Query OK, 4 rows affected (0.20 sec) Rows matched: 4 Changed: 4 Warnings: 0
UPDATE가 정상적으로 실행되었다면, 다시 SELECT 문을 사용해 첫 번째 문자가 실제로 제거되었는지 확인할 수 있습니다.
mysql> select *from CutStringDemo;
아래 출력 결과를 보면 첫 번째 문자인 쉼표(,)가 성공적으로 제거된 것을 확인할 수 있습니다.
+------------+ | Value | +------------+ | 12,3456 | | 23,9867 | | 20,3212 | | 23456,1234 | +------------+ 4 rows in set (0.00 sec)
참고 사항
substr() 대신 동일한 기능을 하는 substring() 함수를 사용해도 결과는 같습니다. 또한 특정 조건에 해당하는 행만 수정하고 싶다면 UPDATE 문 뒤에 WHERE 절을 추가하면 됩니다. 예를 들어 UPDATE CutStringDemo SET Value=SUBSTR(Value,2) WHERE Value LIKE ',%';처럼 작성하면 쉼표로 시작하는 데이터만 안전하게 처리할 수 있습니다.