如何在MySQL查詢中表達:「獲取所有新元素,但至少有N個元素」。MySql:獲取至少N個元素
我會盡力解釋更好。如果我有一個產品列表[產品,價格,日期,新],我想知道如何進行查詢,並且我想向用戶顯示所有新元素,但是如果少於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個新項目,查詢應該返回4個新項目和最新的非新項目
- 如果表中包含7個新項目,查詢應該返回只有7個新項目
- 如果表中包含1個新項目,則查詢應返回新項目和4個非新項目。
怎樣的'new'字段從'date'領域區分?如果您按日期訂購併將結果限制爲5,那麼不會讓您獲得您想要的結果嗎?即使結果中的第五個元素不是「新」,它仍然是最新的非新項目,不是? –
LIMIT查詢不可能。限制值必須是常量或變量 - 在查詢運行時不能動態填寫限制。你需要做一些客戶端按摩。 –
@logan:即使有7個新/ 0舊項目顯示,它也只會返回5個項目。 –