MYSQL 특정 문자를 포함하는 SQL 작성하기
SQL에서 특정 문자를 포함하는 결과를 조회하고 싶은 경우가 빈번하게 발생합니다. LIKE문을 사용하면 쉽게 특정 문자를 포함하는 결과를 조회할 수 있습니다. LIKE문은 MYSQL 뿐만아니라 오라클에서 같은 문법으로 특정 문자열을 포함하는 결과를 조회할 수 있습니다.
LIKE 기본 사용법
LIKE문의 기본 사용 문법과 옵션입니다.
- SELECT COL1, COL2, ... FROM 테이블명 WHERE COL1 LIKE '%특정 문자%';
1) LIKE 'ABC%' : ABC로 시작하는 하는 경우
2) LIKE '%ABC%' : ABC로 끝나는 경우
3) LIKE '%ABC%' : ABC를 포함하는 경우
[Tip]
LIKE문은 %와 함께 쓰이며 위치에 따라 시작, 끝나는 문자 또는 포함하는 경우를 조회할 수 있습니다.
LIKE 예시와 옵션 사용 방법
LIKE문의 옵션을 활용하여 다양한 조회 결과를 얻을 수 있는 예시입니다.
STUDENT 테이블
SELECT * FROM STUDENT;
ID | NAME |
1 | 문동은 |
2 | 박연진 |
3 | 전재준 |
4 | 손명오 |
5 | 이사라 |
6 | 손준명 |
1) 이름이 박으로 시작하는 데이터 조회
SELECT * FROM STUDENT WHERE NAME LIKE '박%';
ID | NAME |
2 | 박연진 |
2) 이름이 은으로 끝나는 데이터 조회
SELECT * FROM STUDENT WHERE NAME LIKE '%은';
ID | NAME |
1 | 문동은 |
3) 이름에 재준을 포함하는 데이터 조회
SELECT * FROM STUDENT WHERE NAME LIKE '%재준%';
ID | NAME |
3 | 전재준 |
4) 이름에 손과 오를 포함하는 데이터 조회
LIKE문을 사용할 때 AND 조건은 다음과 같은 방법으로 간단하게 사용할 수 있습니다.
단, '%시작%끝%' 구문에서 시작과 끝의 위치가 바뀐 데이터는 조회되지 않습니다.
SELECT * FROM STUDENT WHERE NAME LIKE '%손%명%';
ID | NAME |
4 | 손명오 |
6 | 손준명 |
5) 이름에 박 또는 라를 포함하는 데이터 조회
LIKE문을 사용할때 OR 조건은 다음과 같이 연결하여 사용할 수 있습니다.
SELECT * FROM STUDENT
WHERE NAME LIKE '%박%'
OR NAME LIKE '%라%';
ID | NAME |
2 | 박연진 |
5 | 이사라 |
LIKE와 IN의 차이점
MYSQL에서 LIKE와 IN은 비슷한 기능을 가지고 있지만 명확한 차이가 있습니다.
1) LIKE : 데이터가 특정 문자를 포함하고 있는 경우 모두 조회 가능
2) IN : 데이터가 특정 문자와 완전 일치할 경우 조회 가능
만약 한 컬럼이 가지는 데이터와 찾고 싶은 특정 문자가 완전 일치하는 경우에는 성능면에서 LIKE 보다 IN 문을 사용하여 데이터를 조회할 것을 추천드립니다.
'IT > MYSQL' 카테고리의 다른 글
MYSQL - 알파벳 대소문자와 공백 제거하기(UPPER, LOWER, TRIM) (0) | 2023.03.08 |
---|---|
MYSQL - SUBSTRING, LEFT, RIGHT 문자열 자르기 함수 사용 방법 (0) | 2023.03.06 |
MYSQL - GROUP_CONCAT 사용 방법, 데이터 연결하기 (0) | 2023.03.05 |
MYSQL - CONCAT 함수로 컬럼, 문자 연결하는 방법 (0) | 2023.03.03 |
MYSQL - DATE_FOMAT 날짜 형식 지정하기(YYYYMMDD, %Y%m%d) (0) | 2023.03.02 |
댓글