从Mysql获取上次更新的记录

从Mysql获取上次更新的记录,mysql,select,doctrine-orm,Mysql,Select,Doctrine Orm,我需要编辑表中存在的数据。编辑后,我想保留一份旧数据的副本。因此,我不是使用update语句,而是使用insert将新更新的数据插入到同一个表中。两组数据都有一个相同的id,它可以帮助我跟踪变化。该表还有一个autoincrement字段。如下所示: > id Data Data_id > 1. Data1 01 > 2. Data1_edit1 01 > 3. Data2

我需要编辑表中存在的数据。编辑后,我想保留一份旧数据的副本。因此,我不是使用
update
语句,而是使用
insert
将新更新的数据插入到同一个表中。两组数据都有一个相同的
id
,它可以帮助我跟踪变化。该表还有一个
autoincrement
字段。如下所示:

> id Data            Data_id
> 1. Data1                01
> 2. Data1_edit1          01
> 3. Data2                02
> 4. Data2_edit1          02
id为自动增量,数据id有助于记录更改。 该表也是可时间标记的。这样,Data1的时间戳将比Data1_edit1低

假设我想获取
Data2
的最新更新记录,即
id
4
Data1
id
2
,我正在尝试使用以下方法来完成此操作:

-> select("*") 
-> from("data")
-> groupBy("Data_id")
正如预期的那样,这将返回
Data1
Data2
,我如何才能返回
Data1\u edit1
Data2\u edit1

我使用的是
Doctrine 2
Mysql

谢谢你的帮助

谢谢。

您可以试试这个:

select * from data where (data_id, id ) in ( select data_id, max(id) from data group by Data_id );
您可以尝试以下方法:

select * from data where (data_id, id ) in ( select data_id, max(id) from data group by Data_id );
它工作正常。 SQL小提琴

它工作正常。 SQL小提琴


谢谢,伙计,的确如此。我的错。已经把
分组按
放在
in()之外了
谢谢,伙计,真的。我的错。已将
分组按
放置在
in()之外