MYSQL 쿼리 질문 좀 부탁드립니다.
글쓴이: ep6tri / 작성시간: 수, 2013/06/05 - 11:05오후
MYSQL 쿼리에 관한 기초적인 질문 좀 드리겠습니다.
테이블이 이렇게 있다고 해요.
pk | a | b
1 1 1
1 1 2
1 2 3
...
저는 여기서 a, b만의 값의 목록을 알고 있다고 해요. (1, 1), (3, 4), (4, 6) ... 이렇게 말이죠. a 필드와 b 필드 각각은 유일한 값은 아니지만 (a, b) 두 필드를 이렇게 조합한 경우는 테이블에서 단 1개의 레코드만 검색될 수 있다고 해요.
그럼 여기서 제가 (a, b) 두 필드의 리스트를 가지고 어떻게 그 레코드의 pk(primary key)값을 알아낼 수 있을까요? SELECT pk FROM table WHERE a='a1' and b='a2' 정도는 저도 압니다... 이렇게 여러 번 호출하면 되긴 하지만, SELECT 쿼리의 횟수를 가급적 줄이고 싶습니다. 어떻게 할 수 있을까요?
Forums:
select pk, a, b from table
select pk, a, b from table where concat(a, ",", b) in ("1,1", "3,4", "4,6");
또는 b의 범위가 -1000 < b < 1000 이라 가정하면,
select pk, a, b from table where a*1000+b in (1001, 3004, 4006);
where (a=1 and b=1) or (a=3
where (a=1 and b=1) or (a=3 and b=4) or ...
아래 문법이 지원되는 지도 체크해보세요.
where (a,b) in((1,1), (3,4), ...)
댓글 달기