를 얻을.MySQL은 "모든 새로운 요소를 얻을 수 있지만, 적어도 N 요소"적어도 N 요소
내가 더 잘 설명하려고합니다. 나는 제품 목록 (product, price, date, new)을 가지고 있고 사용자에게 모든 새로운 요소를 보여주고 싶다면 질의를하는 법을 알고 싶다. 그러나 N 요소보다 적다면 (예 : 5) 또한 마지막 항목. 같은 쿼리에서 생각할 수있는 경우 :
SELECT * FROM `products` WHERE new='1' ORDER BY date DESC
그러나 이것은 단지 모든 새로운 요소와이 반환
SELECT * FROM `products` WHERE new='0' ORDER BY date DESC LIMIT 5
그냥 필요한 최소한의 요소를 반환합니다.
몇 가지 예 : 테이블에 4 개의 새로운 항목이 포함 된 경우 테이블이 7 개의 새로운 항목이 포함되어있는 경우
이- , 쿼리가 4 개 개의 새로운 아이템과 최신이 아닌 새로운 항목
- 를 반환해야합니다 쿼리가 반환해야 단지 7 개 새로운 아이템
- 표 1 새 항목이 포함되어있는 경우, 쿼리는 새 항목 4가 아닌 새 항목을 반환해야합니다.
가 어떻게'new' 필드는'date' 분야에서 차별화는 무엇입니까? 날짜별로 주문한 결과를 5로 제한하면 어쨌든 찾고 있던 결과를 얻을 수 있습니까? 결과의 다섯 번째 요소가 "새로운"것이 아닐지라도, 여전히 최신 아닌 새 항목이 될 수 있습니까? –
LIMIT 쿼리에서는 불가능합니다. 한계 값은 상수 또는 변수 여야하며 쿼리가 실행될 때 동적으로 한도를 채울 수 없습니다. 클라이언트 측 마사지를해야합니다. –
@logan : 표시 할 새 항목/이전 항목이 7 개라도 5 개 항목 만 반환합니다. –