pymysql where절에 tuple in list

조회수 721회

예를들어 A = [[1,a],[2,b],[3,c]] 이고
mysql db에 Table X (column1, coulmn2)가 있어서
select X.column1, X.column2 where [X.column1, X.column2] in A 라는 의미의 쿼리를 쓰고 싶은데 문법에 맞게 쓰려면 여기서 어떻게 고쳐야 되는지 부탁드립니다.

1 답변

  • 결과적으로는 이런 쿼리를 짜셔야 합니다.

    SELECT * FROM A
    WHERE (
        (column1 = 1 AND column2 = 'a') OR /* "컬럼1 값이 1일때 컬럼2 값이 a인 것" */
        (column1 = 2 AND column2 = 'b') OR /* 이런 식으로 쭉 달아준 다음 ... */
        (column1 = 3 AND column2 = 'c')    /* ... OR로 묶어줘야 그중 뭐라도 하나 걸려서 나온다. */
    )
    

    이걸 pymysql에서 제일 효율적으로 하는 방법은 다른 분이 답 주실 것으로 믿고 제 글은 여기서 줄입니다.

    참고: 아래 쿼리는 기대한 대로 동작하지 않을 것입니다. "where in"이라고 하셨길래 혹시나 해서...

    SELECT * FROM A
    WHERE column1 IN (1, 2, 3)
      AND column2 IN ('a', 'b', 'c')
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)