查询以选择具有相同列值(日期)的最后一条记录

时间:2012-09-12 05:00:04

标签: mysql sql

表架构

id              date
----            -------
1020            1990-02-15
1020            1990-02-15
1060            1990-02-15
1020            1990-03-15
1020            1990-03-15
1020            1990-02-10

查询以选择具有相同日期且id = 1020的最后插入记录 日期格式yyyy-mm-dd

4 个答案:

答案 0 :(得分:2)

根据最后一条记录,我假设您的意思是具有最新日期的那个......

select * from table where id=1020 order by date desc limit 1

答案 1 :(得分:2)

<击> 因为它是MySQL

SELECT * 
FROM table 
WHERE id=1020 
ORDER BY `date` desc 
LIMIT 1

但我仍然有一个问题,如果你有这样的记录怎么办?

1020            1/11/12
1020            1/12/12
1020            1/12/12
1020            1/13/12

它将返回什么?

在您的情况下,date目前尚未格式化(我猜它已保存为VARCHAR ),这就是您需要使用{格式化它的原因{ {1}}功能,并使用您想要的格式从该显示。

STR_TO_DATE

<击>

更新1

所以你需要具有相同日期的记录吗?试试这个编辑。为此,它创建了一个子查询,它返回最新日期并具有相同的日期。

SELECT DATE_FORMAT(STR_TO_DATE(`date`, '%m/%d/%y'), '%d-%m-%Y') lastDate
FROM table 
WHERE id = 1020 
ORDER BY `date` desc 
LIMIT 1

答案 2 :(得分:0)

这有帮助吗?

select max(date) from table where id=1020;

答案 3 :(得分:0)

尝试

SELECT * FROM schema WHERE id=1020 ORDERBY date DESC limit 1;

或选择最喜欢的日期

SELECT MAX(date) from schema WHERE id = 1020;