我希望有人能给我关于这个问题的总体方向:
起始点是数据库记录的 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
我需要的是
- 具有 max(price)(或同等内容)的商品。
- 如果有多个商品具有相同的价格,请获取具有最高评级(或同等价格)的商品。
- 最后,如果仍然有多个项目,取数组中第一个的项目。
我特别坚持第 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/