문자열에 MySQL의 특정 데이터가 포함되어 있는지 확인

Preet Sanghavi 2023년1월30일
  1. MySQL의 LOCATE 함수를 사용하여 MySQL의 문자열에 특정 데이터가 포함되어 있는지 확인
  2. MySQL의 INSTR 함수를 사용하여 MySQL의 문자열에 특정 데이터가 포함되어 있는지 확인
  3. MySQL의 LIKE 연산자를 사용하여 MySQL의 문자열에 특정 데이터가 포함되어 있는지 확인
문자열에 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

따라서 위의 세 가지 기술의 도움으로 테이블에서 문자열의 존재를 효율적으로 찾을 수 있습니다.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

관련 문장 - MySQL Query