从表中选择项目并按金额订购2天?

plupiseo  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(324)

例如,我有下表:

---------------------
|  amount |   date    |
 ---------------------
|  50     |   Day 1   |
|  60     |   day 2   |
|  20     |   day 3   |
|  25     |   day 3   |
|  23     |   day 4   |
|  26     |   day 4   |
|  15     |   day 5   |
 ---------------------

我基本上想做的是检索项目,从过去2天和订单行的最大金额。结果是:

---------------------
|  amount |   date    |
 ---------------------
|  26     |   day 4   |
|  23     |   day 4   |
|  15     |   day 5   |
 ---------------------

仅供参考:输入的日期为 2018-06-10 14:37:44 上面的模式只是一个例子
我试过: SELECT AMOUNT FROM table WHERE AMOUNT=(SELECT MAX(AMOUNT) FROM table) ORDER BY DATE; 但我得到的结果只是 | 60 | day 2 | 这是最大金额,不是从最近的两个日期;

e0uiprwp

e0uiprwp1#

试试这个:

SELECT amount, date FROM table WHERE date >= DATE_ADD(CURDATE(), INTERVAL -2 DAY) ORDER BY amount DESC;

-- date > DATE_ADD(CURDATE(), INTERVAL -2 DAY) will give you all rows within 2 days
-- ORDER BY amount DESC will give you ordered by amount descending
gcmastyq

gcmastyq2#

您可以使用date\u add函数,在给定当前日期的curdate()旁边指定一个特定时间之后的日期;

SELECT * FROM table WHERE date >= DATE_ADD(CURDATE(), INTERVAL -2 DAY)
ORDER BY amount DESC;

相关问题