2011-07-29 7 views
0

데이터베이스 테이블에서 여러 행을 어떻게 표시 할 수 있는지 알고 싶습니다. 하나의 방법을 알고 있지만 한 줄만 표시 할 수 있습니다. 코드는 다음과 같습니다.데이터베이스에서 여러 행을 표시하는 방법은 무엇입니까?

('SELECT * FROM cats WHERE cat_id="32" ORDER BY sorting') 

여기에 태그를 추가해야합니다. 나쁜 예

('SELECT * FROM cats WHERE cat_id="32, 33, 34, 37" ORDER BY sorting') 

어떻게해야합니까?

+0

"cat_id"필드가 변형 된 정수라고 가정했기 때문에 이전에 묻지 않았다고 생각했습니다. 이제 질문을 다시 살펴 보았습니다. cat_id 값을 인용 부호로 묶었습니다. cat_id가 문자열 인 경우, 내가 제공 한 예제에서 인용문을 사용해야합니다. –

답변

6
SELECT * FROM cats WHERE cat_id IN (32, 33, 35, 37) ORDER BY sorting 
1
SELECT * 
FROM cats 
WHERE cat_id IN ("32", "33", "34", "37") 
ORDER BY sorting 
0

Kristofer 호크 그러나 당신은 또한 당신이 보여준 간단한 유스 케이스에 완벽하게 작동 할 콘래드와 Kristofer에서

WHERE cat_id = 32 
     OR cat_id = 33 
     OR cat_id = 35 
     OR cat_id = 37 
0

의 예를 작성할 수주의해야 최선의 답을 가지고있다. OR 또는 IN을 사용하면 옵티마이 저가 임시 테이블을 작성해야하는 경우가 있습니다. 보다 복잡한 조회를 작성하고 IN 절에 사용 된 필드가 색인이 아닌 경우, EXPLAIN 명령을 실행하십시오.

EXPLAIN [you query here]; 

이 시나리오를 확인하십시오. 어떤 경우에는 UNION을 사용하여 쿼리를 최적화해야했습니다.

관련 문제