我需要一个查询,它会给我的结果是(a)最高价格或(b)具有最早时间戳的结果.在所有情况下,价格应该胜过时间戳(即如果一个记录的确具有比其他记录更高价格的旧时间戳,它应该总是以最高价格返回记录)
以下是一些场景:
id | price | date
1 | 5 | 2012-02-20 08:59:06
2 | 5 | 2012-02-20 09:59:06
3 | 7 | 2012-02-20 10:59:06
Run Code Online (Sandbox Code Playgroud)
应返回id 3,因为它是最高价格
id | price | date
1 | 5 | 2012-02-20 08:59:06
2 | 5 | 2012-02-20 09:59:06
3 | 5 | 2012-02-20 10:59:06
Run Code Online (Sandbox Code Playgroud)
应该返回id 1,因为它是最老的
在我当前的查询中,我这样做:
SELECT * FROM table ORDER BY price, date DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个查询不起作用,我在上面概述了它.
谢谢你的帮助
Sim*_*tal 15
我无法准确确定您的身份,但听起来您正在寻找最高价格的最老时间戳,因此以下内容应该足够
SELECT *
FROM table
ORDER BY
price DESC, // Favour the highest price
date ASC // Now get the one with oldest date at this price
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18897 次 |
| 最近记录: |