[Mysql] SQL IN 사용하기

     

    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 조건과 유사하다는 점이므로 향후 사용하게 될 경우 주의하도록 하자.

    반응형

    댓글

    Designed by JB FACTORY