mysql - 如何从 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
字段中包含最大值,我想从行中选择所有值的方式。我怎样才能实现这种查询?
解决方案
您可以使用以下命令选择一行:
select r.*
from ratings r
order by rt_stars desc, rt_id desc
limit 1;
您的查询的问题是您不能max()
在where
子句中使用。除此之外,您根本不需要聚合——只需对行进行排序,然后选择第一行。
推荐阅读
- c++ - 如何减少花费的时间
- javascript - Angular 选择器组件生命周期 - ngoninit/ngondestroy/等。如果嵌套在另一个之下,则会触发。这种行为可以避免吗?
- sql-server - 添加类型的类似hashmap的列
实体 - python - Pandas Dataframe - 在多列上装箱并在另一列上获取统计信息
- sql - 在SQL中的string_agg之后计算每一行中的每个值
- javascript - 将其从 jquery 转换为 javascript 后脚本无法正常工作
- mysql - 如何在我的节点应用程序中使用远程数据库
- python - 如何从 HashMap 中检索数据?
- javascript - Angular 9 - 你必须传入 NgModule 或 NgModuleFactory 才能被引导
- clojure - 为什么匿名函数不能与 clojure 中的地图一起使用?