2010-06-27 4 views
3

PHP를 사용하면 MySQL 데이터베이스에서 WHERE 절마다 특정 LIMIT를 가진 여러 WHERE 절을 사용하여 하나의 테이블에서 여러 행을 선택할 수 있습니까? 예를 들어LIMIT가있는 WHERE 절 MySQL

는 :

SELECT * FROM the_table WHERE color = 'blue' LIMIT 5 OR color = 'red' LIMIT 10 

나는 위의 문이 작동하지 않습니다 알고있다. 그러나 데이터베이스에 대한 단일 호출로이 작업을 수행 할 수있는 방법이 있습니까?

(SELECT * FROM the_table WHERE color = 'blue' LIMIT 5) 
UNION ALL 
(SELECT * FROM the_table WHERE color = 'red' LIMIT 10) 
+2

어떤 결과가 예상됩니까? – Gumbo

답변

10

당신은 UNION를 사용할 수 있습니다.

2
SELECT * FROM the_table WHERE color = 'blue' LIMIT 5 

UNION 

SELECT * FROM the_table WHERE color = 'red' LIMIT 10 ; 
+0

쿼리를 구분하기 위해 without()를 사용하지 않으면 LIMIT 10이 두 결과에 모두 적용됩니다. – radius

0

하위 쿼리와 관련된 공식 MySQL 설명서를 살펴보십시오. 여기에 LIMIT에 대한 참조가 있고 일부 경우에 유효하지 않을 수도 있습니다. http://dev.mysql.com/doc/refman/5.5/en/subquery-restrictions.html - 거기에 하위 쿼리를 사용하여 최적화를 찾을 수 있지만 UNION은 아마도 매우 빠르며 아마도 자동으로 최적화 될 것입니다.