Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 테이블의 열 값에서 하위 문자열을 추출하는 방법은 무엇입니까?

<시간/>

SUBSTRING(), MID() 또는 SUBSTR()과 같은 함수를 적용하여 열 값에서 부분 문자열을 추출할 수 있습니다. 이 경우 함수의 첫 번째 인수로 열 이름을 제공해야 합니다. 즉, 문자열 위치에 열 이름을 제공해야 합니다. 다음 예에서 이를 보여줍니다.

예시

'Student' 테이블의 'Name' 열에서 부분 문자열을 추출하려고 한다고 가정하면 다음과 같이 다른 함수를 사용하여 수행할 수 있습니다. -

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)

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)

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)

위 쿼리에 다음과 같이 조건을 적용할 수도 있습니다. -

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)