要抓住所有产量最大的产品

时间:2014-03-13 18:29:38

标签: php mysql sql

使用以下样本数据,我需要获得金额为20的所有产品,因为它是最大的数量。我试过这个查询,但似乎对我不起作用,因为我不能将LIMIT设置为适当的数量,因为我不知道有多少产品具有该数量。

SELECT * FROM Product
ORDER BY Quantity DESC
LIMIT 2

+----+---------+----------+
| Id |  Name   | Quantity |
+----+---------+----------+
|  5 | Pencil  |       20 |
|  8 | Stapler |       20 |
|  4 | Pen     |        5 |
|  9 | Sheet   |        3 |
+----+---------+----------+

我需要获得数量最多的产品,不一定是20,20只是一个例子吗?

4 个答案:

答案 0 :(得分:2)

如果您希望所有结果的数量都是20,那么您需要做的就是在WHERE子句中指定:

SELECT * FROM Product WHERE Quantity = 20;

如果您期望值始终相同,则无需包含ORDER BY。除非您想要数量为20的第一个结果数量,否则也不需要LIMIT。

答案 1 :(得分:2)

如果要选择最大值为Quantity的所有产品,请使用:

SELECT *
FROM Product 
WHERE Quantity = (SELECT MAX(Quantity) FROM Product);

答案 2 :(得分:1)

如果您想强制使用orderbydesc,请尝试

Select * from Product WHERE Quantity = 20 ORDER BY quantity DESC;

formore details on orderby and desc但在你的情境中并不是强制性的

答案 3 :(得分:1)

由于您编辑了问题,因此您可以获得20或更高版本的问题,使用以下查询将其排序为最大值:

SELECT * FROM Product
WHERE Quantity => 20
ORDER BY Quantity DESC;