我需要从我的网站上的特色部分的表中拉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. 查找匹配和填充数组
- 5. 猫鼬查询填充查找元素的匹配id
- 6. 总和MS SQL查询某些列
- 7. 查找某些文本
- 8. 某些Transact-SQL查询
- 9. CSS和SQL填充列表
- 10. 通过id查找视图仅适用于某些设备
- 11. 查找id不包含某些字符的所有文本框
- 12. SQL - 填充表
- 13. 使用查找表来填充多列
- 14. 填充“查找表”与随机值
- 15. 在填充猫鼬后查找
- 16. 用另一个查找表填充NaN
- 17. 填充DataGridView使用SQL查询
- 18. 在SQL查询中填充空白
- 19. 如何在查询中填充SQL
- 20. 填充WTForms SelectField与SQL查询
- 21. 从SQL查询填充WSS 3.0列表
- 22. 由SQL查询填充的Java Jtree
- 23. t-sql查询填充空值
- 24. 我试着去填充某些用户信息到物品上查询
- 25. jQuery - 检查某些字段已填充,然后验证电子邮件
- 26. 如何查询表,但忽略某些列,如ID =“1”和“2”
- 27. 从SQL填充DataRow
- 28. C#Xml Linq,填充某些对象类型的列表
- 29. 斯威夫特/填充的UITableView与匹配某些条件
- 30. ggplot2:根据填充值为某些点设置alpha = 0
哪个数据库lang? – 2012-02-15 21:04:39
我使用mysql – LordZardeck 2012-02-15 21:09:32