从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()之外