我需要從我的網站上的特色部分的表中拉3行。我首先從訂單表中檢索出售量最高的3件商品的列表。然後我需要檢查一下,看看有沒有剩下。如果是這樣,請從庫存表中提取其詳細信息。問題是,我總是需要3.如果訂單表中沒有3個物品仍然有貨,我需要足夠的3個,從隨機選擇。我怎樣才能設置WHERE id IN (1, 2)
,然後仍然拉1隨機記錄?SQL查找某些ID和填充
回答
您可以使用UNION加入記錄WHERE id IN (1, 2)
,然後第二個查詢是您的隨機記錄。
SELECT *
FROM table
WHERE id IN (1, 2)
UNION
SELECT Top 1 *
FROM table
如果您提供了有關您的查詢的更多詳細信息,那麼我可以提供更詳細的答案。
編輯: 基於您的評論,你應該能夠做一些這樣類似:
SELECT *
FROM list_cards
WHERE card_id IN (1, 2) AND qty > 0
UNION
SELECT *
FROM list_cards
WHERE qty > 0
如果你想確保您始終獲得3個結果:
有關使用SELECT TOP 3 C.*
FROM
(
SELECT C.*, '1' as Priority
FROM list_cards C
WHERE C.card_id IN (1, 2) AND qty > 0
UNION
SELECT C.*, '2' as Priority
FROM list_cards C
WHERE qty > 0
) C
ORDER BY C.Priority
好吧,我正在使用cakephp,現在它並沒有顯示我的查詢是什麼。但我想它會看起來像'SELECT * FROM list_cards where card_id IN(1,2)AND qty> 0' – LordZardeck 2012-02-15 21:14:02
@LordZardeck請參閱我的編輯。 – Taryn 2012-02-15 21:15:59
如果card_id 2的數量爲0,會發生什麼情況?那麼我只會得到2個結果? – LordZardeck 2012-02-15 21:19:14
如何UNION
和另一個SELECT
,與LIMIT 1
?
這樣的黑客可能會選擇虛擬數據嗎?
SELECT TOP 3 *
FROM
(
SELECT * from table WHERE id IN (1,2)
UNION
SELECT 0;
UNION
SELECT 0;
UNION
SELECT 0;
)
ORDER BY [whatever field]
- 1. 填充Datagrid和Sql查詢
- 2. 如何在sql中填充查找表?
- 3. SQL:找填充區域
- 4. 查詢ContentProvider的某些ID
- 5. 查找匹配和填充數組
- 6. 貓鼬查詢填充查找元素的匹配id
- 7. 檢查ruby hash是否包含填充的某些字段
- 8. 查找某些詞和替換他們
- 9. 總和MS SQL查詢某些列
- 10. SQL查詢:填充只
- 11. 查找某些文本
- 12. 某些Transact-SQL查詢
- 13. CSS和SQL填充列表
- 14. 使用自動填充和相同ID填充多個字段
- 15. 查找id不包含某些字符的所有文本框
- 16. 通過id查找視圖僅適用於某些設備
- 17. SQL某些行的總和
- 18. SQL - 填充表
- 19. 檢查某些ID的PHP數組
- 20. 在Python中查找和寫入某些文件中的某些文字
- 21. 何處/何時填充查找值?
- 22. 填充「查找表」與隨機值
- 23. 基於查找的Excel填充行
- 24. 在填充貓鼬後查找
- 25. 用另一個查找表填充NaN
- 26. 使用查找表來填充多列
- 27. MySql查詢查找包含某些變量的列MySQL和PHP
- 28. 從SQL查詢填充WSS 3.0列表
- 29. 用SQL查詢填充D3.js餅圖
- 30. t-sql查詢填充空值
哪個數據庫lang? – 2012-02-15 21:04:39
我使用mysql – LordZardeck 2012-02-15 21:09:32