我有 table1 有以下记录:
campo1 campo2 campo3
Adrian 25 2016-09-17
Juan 27 2016-09-14
Alex 23 2016-09-03
Ana 31 2016-09-17
Rocio 29 2016-09-17
在假定的情况下 field3 总是被修改但不是同时修改所有记录,因为我只能获取具有最近日期的记录,请尝试使用 max()
Select * from tabla1 where campo3 = max(campo3);
在这种情况下,我想得到以下结果:
campo1 campo2 campo3
Adrian 25 2016-09-17
Ana 31 2016-09-17
Rocio 29 2016-09-17
但是我再次重复那个日期,它不会被修复,它总是会被修改,所以尝试使用 max() 获取最近的日期,我已经尝试过分组,但什么也没有,如果你好心向我解释一下我失败了,或者适用的逻辑是什么
查询将如下所示:
如果您有几个相同的
id
并且只想获得最大的:给定表格:
CREATE TABLE
repetidosTimestamp
(c1
int(11) NOT NULL DEFAULT '0',c2
varchar(100) DEFAULT NULL,c3
varchar(100) DEFAULT NULL,c4
date DEFAULT NULL, PRIMARY KEY (c1
)) ENGINE=InnoDB DEFAULT CHARSET=latin1使用以下数据:
这个表达式:
选择 * from repeatTimestamp as one WHERE c4 in (SELECT MAX(c4) FROM repeatTimestamp where one.c2=c2) order by c4 DESC;
会给你这个答案:
这是所有新记录,根据时间字段从表中清除旧记录。