MYSQL如何选择字段具有最小值的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL如何选择字段具有最小值的数据相关的知识,希望对你有一定的参考价值。

我想从表中选择数据,其中特定字段具有最小值,我试过这个:

SELECT * FROM pieces where min(price)

我对mysql不好,请帮忙吗?谢谢

答案

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

SELECT *
FROM pieces
WHERE price =  ( SELECT MIN(price) FROM pieces )
另一答案

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

SELECT * FROM pieces ORDER BY price ASC LIMIT 1

如果您尝试选择多行,其中每行可能具有相同的价格(这是最小值),那么@ JohnWoo的答案应该足够了。

基本上我们只是按ASCending顺序(增加)的价格排序结果并取结果的第一行。

另一答案

使用HAVING MIN(...)

就像是:

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

这也有效:

SELECT
  pieces.*
FROM
  pieces inner join (select min(price) as minprice from pieces) mn
  on pieces.price = mn.minprice

(因为这个版本没有子查询的where条件,如果你需要更新表,可以使用它,但如果你只需要SELECT我会建议使用John Woo解决方案)

另一答案

事实上,取决于你想要得到的: - 只是最小值:

SELECT MIN(price) FROM pieces
  • 具有最小值的表(多行):正如John Woo所述。
  • 但是,如果可以是具有相同最小值的不同行,则最好是从另一列中对它们进行ORDER,因为之后或之后您将需要这样做(从John Woo answere开始): SELECT * FROM pieces WHERE price =(SELECT MIN(price)FROM pieces)ORDER BY stock ASC
另一答案

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

SELECT id, name, MIN(price) FROM (select * from table order by price) as t group by id
另一答案

使它更简单

SELECT *,MIN(价格)FROM prod LIMIT 1

  • 放*因此它将显示最小值的所有记录

以上是关于MYSQL如何选择字段具有最小值的数据的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 选择 JSON 字段属性具有值的位置

按列分组并选择具有多个最小值的行中的所有字段

如何使用 LINQ 选择具有最小或最大属性值的对象

Wtforms:如何使用具有动态选择值的选择字段生成空白值

SQL查询以选择具有最小值的不同行

Django:如何选择具有相同字段值的对象?