문자열에 MySQL의 특정 데이터가 포함되어 있는지 확인
- MySQL의 LOCATE 함수를 사용하여 MySQL의 문자열에 특정 데이터가 포함되어 있는지 확인
- MySQL의 INSTR 함수를 사용하여 MySQL의 문자열에 특정 데이터가 포함되어 있는지 확인
- MySQL의 LIKE 연산자를 사용하여 MySQL의 문자열에 특정 데이터가 포함되어 있는지 확인
이 튜토리얼에서는 MySQL의 테이블에 문자열이 포함되어 있는지 확인하는 다양한 방법을 탐색하는 것을 목표로 합니다.
MySQL에서 다음 기술을 살펴보겠습니다.
INSTR
기능LOCATE
기능LIKE
연산자
그러나 시작하기 전에 작업할 더미 데이터 세트를 만듭니다. 여기에서 몇 개의 행과 함께 student_details
테이블을 만듭니다.
-- create the table student_details
CREATE TABLE student_details(
stu_id int,
stu_firstName varchar(255) DEFAULT NULL,
stu_lastName varchar(255) DEFAULT NULL,
primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
VALUES(1,"Preet","Sanghavi"),
(2,"Rich","John"),
(3,"Veron","Brow"),
(4,"Geo","Jos"),
(5,"Hash","Shah"),
(6,"Sachin","Parker"),
(7,"David","Miller");
위의 쿼리는 학생의 이름과 성이 포함된 행과 함께 테이블을 생성합니다. 데이터의 항목을 보기 위해 다음 코드를 사용합니다.
SELECT * FROM student_details;
위의 코드는 다음과 같은 출력을 제공합니다.
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
이름에 Parker
단어가 포함된 모든 학생을 찾는 것을 목표로 합시다.
MySQL의 LOCATE 함수를 사용하여 MySQL의 문자열에 특정 데이터가 포함되어 있는지 확인
MySQL의 위치 찾기 기능은 일반적으로 LOCATE(substr, str)
와 같은 2개의 인수를 사용합니다. 여기서 substr
은 첫 번째 인수로 전달된 하위 문자열이고 str
은 두 번째 인수로 전달된 문자열입니다. LOCATE
함수의 출력은 인수로 전달된 문자열의 발생이 있는 첫 번째 행입니다. 이 기능이 작동하는지 보려면 아래 코드를 살펴보십시오.
-- finding the word 'Park' from the table where the last name of the student is Park.
SELECT * FROM student_details WHERE LOCATE('Park', stu_lastName) > 0 ;
위의 코드는 다음과 같은 출력을 제공합니다.
stu_id stu_firstName stu_lastName
6 Sachin Parker
MySQL의 INSTR 함수를 사용하여 MySQL의 문자열에 특정 데이터가 포함되어 있는지 확인
LOCATE 함수와 유사하게 INSTR 함수 INSTR(str, substr)
은 2개의 인수를 취합니다. 그러나 이 함수는 매개변수로 전달된 부분 문자열에서 문자열이 처음 발생했을 때의 인덱스 값을 반환합니다. 여기서 str
은 첫 번째 인수로 전달된 문자열이고 substr
은 두 번째 인수로 전달된 하위 문자열입니다. 이 기능이 작동하는지 보려면 아래 코드를 살펴보십시오.
-- finding the word 'Park' from the table where the last name of the student is Park.
SELECT * FROM student_details WHERE INSTR(stu_lastName , 'Parker') > 0;
위의 코드는 다음과 같은 출력을 제공합니다.
stu_id stu_firstName stu_lastName
6 Sachin Parker
참고: LOCATE(substr,str)
및 INSTR(str,substr)
함수에서 인수가 전달되는 방식이 다릅니다.
MySQL의 LIKE 연산자를 사용하여 MySQL의 문자열에 특정 데이터가 포함되어 있는지 확인
데이터에서 문자열의 존재를 찾는 또 다른 대안은 LIKE
를 사용하는 것입니다. 이 연산자는 WHERE
절과 함께 사용하여 특정 문자열을 찾습니다. 이 기술이 실제로 작동하는지 보려면 아래 코드를 살펴보십시오.
-- finding the word 'Park' from the table where the last name of the student is Parker.
SELECT * FROM student_details WHERE stu_lastName LIKE 'Parker' ;
위의 코드는 다시 다음 출력을 제공합니다.
stu_id stu_firstName stu_lastName
6 Sachin Parker
또한 와일드카드라고도 하는 %
는 LIKE 연산자와 함께 사용됩니다. 이름에서 알 수 있듯이 이 와일드카드는 그 자리에 문자가 없거나 하나 또는 여러 개 있음을 나타냅니다. 이 와일드카드가 작동하는지 보려면 아래 코드를 살펴보세요.
-- finding the student with last name ending in 'arker' from the table.
SELECT * FROM student_details WHERE stu_lastName LIKE '%arker' ;
위의 코드는 다시 다음 출력을 제공합니다.
stu_id stu_firstName stu_lastName
6 Sachin Parker
따라서 위의 세 가지 기술의 도움으로 테이블에서 문자열의 존재를 효율적으로 찾을 수 있습니다.