我希望有人能就这个问题给我一个大方向:
起点是db记录的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
我需要的是
我特别坚持第3点。有没有办法在(My)SQL中执行此操作,还是应该在代码中执行此操作?
感谢您的阅读。
答案 0 :(得分:2)
这样的事情应该有效:
SELECT * FROM table WHERE id IN (45,23,14,7) ORDER BY price DESC, rating DESC LIMIT 1
答案 1 :(得分:1)
除了@jasonlfunk的回答之外,你还可以添加一个额外的order子句来考虑你的数组:
SELECT * FROM table WHERE id IN (45,23,14,7) ORDER BY price DESC, rating DESC, FIELD(id,45,23,14,7) ASC LIMIT 1
答案 2 :(得分:0)
...我想你的观点3 ..必须在代码中完成,mysql的结果不一定在订单或数组中返回结果,如果按价格应用订单,那么通过评级仍然返回多个item您的代码应该能够接收列表而不是单行,然后在代码中进行比较。