MySQL에서 열 값의 처음 두 글자만 남기고 나머지 문자를 모두 삭제하려면 SUBSTRING() 함수를 사용하면 됩니다. 이 함수는 지정한 시작 위치부터 원하는 길이만큼의 부분 문자열을 반환하며, UPDATE 문과 함께 사용하면 기존 데이터를 손쉽게 잘라낼 수 있습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable743 (SubjectName varchar(100)); Query OK, 0 rows affected (0.54 sec)
2. 샘플 데이터 삽입하기
INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable743 values('MySQL');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable743 values('Java');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable743 values('MongoDB');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable743 values('Python');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable743 values('Data Structure');
Query OK, 1 row affected (0.68 sec)
mysql> insert into DemoTable743 values('Algorithm');
Query OK, 1 row affected (0.12 sec)3. 전체 레코드 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable743;
위 쿼리는 다음과 같은 결과를 출력합니다.
+----------------+ | SubjectName | +----------------+ | MySQL | | Java | | MongoDB | | Python | | Data Structure | | Algorithm | +----------------+ 6 rows in set (0.00 sec)
4. SUBSTRING()으로 처음 2자만 유지하기
이제 열 값의 처음 2자만 유지하고 나머지 문자를 삭제하는 UPDATE 쿼리입니다. SUBSTRING(컬럼명, 1, 2)는 첫 번째 위치부터 2글자를 추출한다는 의미입니다.
mysql> update DemoTable743 set SubjectName=SUBSTRING(SubjectName,1,2); Query OK, 6 rows affected (0.12 sec) Rows matched: 6 Changed: 6 Warnings: 0
5. 결과 확인하기
업데이트 후 테이블을 다시 조회하여 결과를 확인합니다.
mysql> select *from DemoTable743;
모든 값이 처음 두 글자만 남은 것을 볼 수 있습니다.
+-------------+ | SubjectName | +-------------+ | My | | Ja | | Mo | | Py | | Da | | Al | +-------------+ 6 rows in set (0.00 sec)
참고 사항
SUBSTRING() 대신 LEFT(SubjectName, 2) 함수를 사용해도 동일한 결과를 얻을 수 있습니다. 또한 MySQL 5.x 이상 버전에서는 SUBSTR()도 같은 기능을 제공하므로 상황에 맞게 선택하여 사용하시면 됩니다.