MySQL에서 문자열의 첫 글자를 제외한 나머지 부분만 가져오고 싶다면 SUBSTR() 함수를 사용하면 됩니다. SUBSTR() 함수는 두 번째 인자로 시작 위치를 지정하는데, 이 값이 2이면 첫 번째 문자를 건너뛰고 두 번째 문자부터 끝까지 반환합니다.
1. 테이블 생성
먼저 예제에 사용할 테이블을 만들어 보겠습니다.
mysql> create table DemoTable
(
FirstName varchar(20)
);
Query OK, 0 rows affected (0.63 sec)
2. 데이터 삽입
INSERT 명령을 사용해 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable values('Larry');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable values('Carol');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.14 sec)3. 저장된 데이터 확인
SELECT 명령으로 테이블의 전체 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
위 쿼리는 다음과 같은 결과를 출력합니다.
+-----------+
| FirstName |
+-----------+
| Larry |
| Carol |
| Robert |
| David |
+-----------+
4 rows in set (0.00 sec)
4. 첫 번째 문자를 제외한 문자열 선택하기
이제 SUBSTR() 함수를 활용하여 각 이름의 첫 글자를 제외한 나머지 문자를 선택하는 쿼리입니다.
mysql> select substr(FirstName,2) from DemoTable;
실행 결과는 다음과 같습니다.
+---------------------+
| substr(FirstName,2) |
+---------------------+
| arry |
| arol |
| obert |
| avid |
+---------------------+
4 rows in set (0.00 sec)
SUBSTR() 함수 동작 원리
substr(FirstName, 2)는 FirstName 열의 값을 2번째 위치부터 끝까지 잘라내어 반환합니다. 즉, 'Larry' → 'arry', 'Carol' → 'arol'처럼 첫 글자가 제거된 결과를 얻을 수 있습니다.
참고로 MySQL에서는 SUBSTRING(), MID() 함수도 동일하게 동작하므로 상황에 맞게 선택해서 사용할 수 있습니다.