在MySQL中,我负责以下会计任务:
我从数据库中拿了一个片段来演示我的问题。
输入:
date text
---------- ----
2015-05-01 b
2015-04-30 a
2015-04-29 b
2015-04-29 a
2015-04-28 b
预期:
date text
---------- ----
2015-04-29 b
我尝试了以下内容:
SELECT MAX(date), text
FROM table1
WHERE MONTH(date) = 4
AND text = b
但它没有返回正确的文字。我尝试使用此链接SQL Select only rows with Max Value on a Column解决问题 - 但我无法让它工作。
怎么办?
答案 0 :(得分:2)
您可以按降序排列ORDER BY
date
列,然后只保留第一行,即最大(即最近)日期的行:
SELECT *
FROM table1
WHERE text = 'b' AND MONTH(date) = 4
ORDER BY date DESC
LIMIT 1