1

表模式

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

4 回答 4

2

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

select * from table where id=1020 order by date desc limit 1
于 2012-09-12T05:04:06.663 回答
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),这就是为什么您需要使用函数将其格式化回日期STR_TO_DATE并使用所需格式从该显示中恢复。

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

更新 1

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

SELECT *
FROM tablename
WHERE id = 1020 AND
        `Date` = (
                    SELECT  MAX(`date`) maxDate
                    FROM    tableName
                    GROUP BY `date`
                    HAVING COUNT(`DATE`) > 1
                 )
于 2012-09-12T05:06:17.450 回答
0

这有帮助吗?

select max(date) from table where id=1020;
于 2012-09-12T05:16:01.777 回答
0

尝试

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

或选择您喜欢的日期的最大值

SELECT MAX(date) from schema WHERE id = 1020;
于 2012-09-12T05:38:06.260 回答