[Mysql] SQL IN 사용하기
- Computer/DB
- 2024. 2. 28.
IN에 대한 설명
SELECT *
FROM [테이블 명]
WHERE 컬럼명 IN ('조건 값 1', '조건 값 2');
equals('=')과 비슷하지만 or의 개념과 유사하다고 할 수 있다.
해당 테이블 내의 검색하고자 하는 컬럼의 값을 2개 이상 조회 할 때 이용하는 연산자이다.
'조건값 1'과 '조건 값 2' 중 하나라도 포함이 되면 true가 된다.
실험 대상의 TABLE
더보기
CREATE TABLE
create table TB_RED
(
RED_COL1 int auto_increment,
RED_COL2 int ,
RED_COL3 VARCHAR(30) ,
CONSTRAINT TB_RED_pk PRIMARY KEY (RED_COL1)
)
comment '첫 번째 테이블';
실험에 참가 된 테이블은 다음과 같다.
컬럼은 3개이며, INT(PK), INT와 VARCHAR2가 담겨 있는 테이블이다.
IN에 대한 결과 - 단일 사용
SELECT *
FROM TB_RED
WHERE RED_COL3 IN ('A', 'B');
테이블에서 IN을 할 경우, 결과가 총 3행이 나오는 것을 확인할 수 있다.
RED_COL3이 'A' 혹은 'B'의 대상이 4개 중 3개가 일치된다는 의미이다.
IN에 대한 결과 - 다중 사용
SELECT *
FROM TB_RED
WHERE (RED_COL2, RED_COL3) IN ((50, 'A'));
IN은 다중 사용이 가능하다.
컬럼 2개를 괄호를 이용해서 사용하면 된다.
여기서 주의할 점은, 다중 사용이 될 경우, 두 개의 조건 모두가 참일 경우에만 true이다.
즉, 여기서는 AND와 유사하다.
총 테이블의 4 행 중, 1개의 행만 표시되는 것을 확인할 수 있다.
그 외 잡지식
IN은 index의 효과를 받는다. 즉, index를 의식해서 사용을 주저할 필요는 없다.
여기서 IN은 다중 사용 할 경우, AND 조건과 유사하다는 점이므로 향후 사용하게 될 경우 주의하도록 하자.
반응형
'Computer > DB' 카테고리의 다른 글
[Oracle] TNS 지정된 접속 식별자를 분석할 수 없음 (0) | 2024.02.29 |
---|---|
[Mysql] COALESCE 사용하기 (0) | 2024.02.28 |
H2 설치하기 (0) | 2023.08.19 |
[MariaDB] Window에서 MariaDB 비밀번호 찾기 (2) | 2023.07.29 |
[Oracle] 사용한 컬럼 찾기 (0) | 2023.07.04 |