首页 > 解决方案 > 如何从 1 字段为最大值或最小值的表中选择行?

问题描述

在我的表中,我有一个字段名称rt_stars,其中包括 1 到 5 之间的整数。假设rt_stars 4,4,3,2,1分别有 5 行。这里,4 是最高的,1 是最低的。如果我想选择最大值为 4 的行,我该怎么做?由于这里有两个4,因此将选择最后一个。我可以查询这样的事情吗?

SELECT * FROM ratings WHERE MAX(rt_stars) ORDER BY rt_id DESC LIMIT 1

我知道这是错误的,但这就是如果rt_stars字段中包含最大值,我想从行中选择所有值的方式。我怎样才能实现这种查询?

标签: mysql

解决方案


您可以使用以下命令选择一行:

select r.*
from ratings r
order by rt_stars desc, rt_id desc
limit 1;

您的查询的问题是您不能max()where子句中使用。除此之外,您根本不需要聚合——只需对行进行排序,然后选择第一行。


推荐阅读