如何在MySQL中选择具有最小值的字段的数据?

问题描述 投票:33回答:7

我想从MySQL中某个特定字段具有最小值的表中选择数据,我已经尝试过:

SELECT * FROM pieces WHERE MIN(price)

请帮助?

mysql sql aggregate-functions greatest-n-per-group
7个回答
61
投票

这将为您提供在所有记录中具有最低价格的结果。

SELECT *
FROM pieces
WHERE price =  ( SELECT MIN(price) FROM pieces )

46
投票

这是我会做的(假设我理解这个问题)

SELECT * FROM pieces ORDER BY price ASC LIMIT 1

如果您尝试选择多个行,每个行的价格可能相同(这是最小值),则@JohnWoo的答案就足够了。

基本上,这里我们只是按照价格从小到大的顺序对结果进行排序(递增),并取结果的第一行。


5
投票

使用HAVING MIN(...)

类似:

SELECT MIN(price) AS price, pricegroup
FROM articles_prices
WHERE articleID=10
GROUP BY pricegroup
HAVING MIN(price) > 0;

4
投票

实际上,取决于您想要获得什么:-只是最小值:

SELECT MIN(price) FROM pieces
  • 具有最小值的表(多行):如John Woo所述。

  • 但是,如果可以是具有相同最小值的不同行,则最好是从另一列中对其进行排序,因为在此之后(或稍后),您需要这样做(从John Woo回答开始:]]

    选择*从件价格=(从件中选择最小(价格))按库存ASC订购


3
投票

这也有效:


2
投票

有效方式(具有任意数量的记录):


-6
投票

为了简化

© www.soinside.com 2019 - 2024. All rights reserved.