MySQL:将多个 MAX() 选择与数组组合的最佳方法?

标签 mysql arrays max

我希望有人能给我关于这个问题的总体方向:

起始点是数据库记录的 id 数组。

array ids = [45,23,14,7];

这些记录有一些列,即

id,price,rating
7,$5.00,5
14,$2.00,4
23,$5.00,2
45,$5.00,5

我需要的是

  1. 具有 max(price)(或同等内容)的商品。
  2. 如果有多个商品具有相同的价格,请获取具有最高评级(或同等价格)的商品。
  3. 最后,如果仍然有多个项目,取数组中第一个的项目。

我特别坚持第 3 点。有没有办法在 (My)SQL 中做到这一点,或者我应该在代码中做到这一点?

感谢您的阅读。

最佳答案

这样的事情应该有效:

SELECT * FROM table WHERE id IN (45,23,14,7) ORDER BY price DESC, rating DESC LIMIT 1

关于MySQL:将多个 MAX() 选择与数组组合的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691805/

相关文章:

java - 如何在java中使用列表中的数组

MySQL选择分组中的最大记录

c++ - 函数不返回输入数组的最高值和最低值

php - 使用 BINARY 从 MYSQL 到 SQLSRV 的密码区分大小写

javascript - 刷新 Express NodeJS API 的内容

php - 为什么背景图像:url() replace slash bar on url?

c 中的 char 数组 end char

php - 我正在尝试搜索/迭代一个非常复杂的数组并提取特定值,但我不知道这样做的最佳途径

javascript - 图表js最大图例数

mysql - 如何在 hibernate 中使用 between 子句比较日期