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

MySQL 테이블 열 값에서 부분 문자열을 추출하는 방법 (SUBSTRING, MID, SUBSTR)

MySQL에서 테이블 열(column)에 저장된 값에서 부분 문자열(substring)을 추출하려면 SUBSTRING(), MID(), SUBSTR() 함수 중 하나를 사용할 수 있습니다. 이 세 함수는 기능적으로 완전히 동일하며, 어떤 것을 사용해도 결과는 같습니다.

중요한 점은 문자열 대신 열 이름을 함수의 첫 번째 인수로 전달해야 한다는 것입니다. 즉, 일반적인 문자열 위치에 추출하고자 하는 열의 이름을 지정하면 됩니다.

기본 문법

SELECT 열이름, SUBSTRING(열이름, 시작위치, 길이) FROM 테이블이름;
  • 시작위치: 추출을 시작할 문자의 위치입니다 (1부터 시작).
  • 길이: 시작 위치부터 몇 개의 문자를 추출할지 지정합니다.

예제

'Student' 테이블의 'Name' 열에서 부분 문자열을 추출한다고 가정해 보겠습니다. 세 가지 함수를 각각 사용한 결과는 다음과 같습니다.

SUBSTR() 함수 사용

mysql> Select name, SUBSTR(name,2,4) from student;
+---------+------------------+
| name    | SUBSTR(name,2,4) |
+---------+------------------+
| Gaurav  | aura             |
| Aarav   | arav             |
| Harshit | arsh             |
| Gaurav  | aura             |
| Yashraj | ashr             |
+---------+------------------+
5 rows in set (0.00 sec)

MID() 함수 사용

mysql> Select name, MID(name,2,4) from student;
+---------+---------------+
| name    | MID(name,2,4) |
+---------+---------------+
| Gaurav  | aura          |
| Aarav   | arav          |
| Harshit | arsh          |
| Gaurav  | aura          |
| Yashraj | ashr          |
+---------+---------------+
5 rows in set (0.00 sec)

SUBSTRING() 함수 사용

mysql> Select name, substring(name,2,4) from student;
+---------+---------------------+
| name    | substring(name,2,4) |
+---------+---------------------+
| Gaurav  | aura                |
| Aarav   | arav                |
| Harshit | arsh                |
| Gaurav  | aura                |
| Yashraj | ashr                |
+---------+---------------------+
5 rows in set (0.00 sec)

위 예제에서 (name, 2, 4)는 이름의 두 번째 문자부터 네 글자를 추출한다는 의미입니다. 예를 들어 'Gaurav'에서는 두 번째 문자인 'a'부터 네 글자인 'aura'가 반환됩니다.

WHERE 조건과 함께 사용하기

부분 문자열 추출 함수는 WHERE 절과 함께 사용하여 특정 조건을 만족하는 행만 대상으로 할 수도 있습니다. 아래 예제는 주소가 'delhi'인 학생들만 대상으로 부분 문자열을 추출합니다.

mysql> Select name, substring(name,2,4) from student WHERE address = 'delhi';
+---------+---------------------+
| name    | substring(name,2,4) |
+---------+---------------------+
| Gaurav  | aura                |
| Harshit | arsh                |
+---------+---------------------+
2 rows in set (0.16 sec)

mysql> Select name, MID(name,2,4) from student WHERE address = 'delhi';
+---------+---------------+
| name    | MID(name,2,4) |
+---------+---------------+
| Gaurav  | aura          |
| Harshit | arsh          |
+---------+---------------+
2 rows in set (0.00 sec)

mysql> Select name, SUBSTR(name,2,4) from student WHERE address = 'delhi';
+---------+------------------+
| name    | SUBSTR(name,2,4) |
+---------+------------------+
| Gaurav  | aura             |
| Harshit | arsh             |
+---------+------------------+
2 rows in set (0.00 sec)

정리

MySQL에서 열 값의 일부를 추출할 때는 SUBSTRING(), MID(), SUBSTR() 중 편한 함수를 선택하면 됩니다. 세 함수 모두 동일하게 동작하며, 첫 번째 인수로 열 이름을, 두 번째 인수로 시작 위치를, 세 번째 인수로 추출할 길이를 지정하는 방식으로 사용합니다. 필요에 따라 WHERE 절을 추가해 원하는 행만 필터링할 수도 있습니다.