我需要编辑表中存在的数据。编辑后,我想保留旧数据的副本。因此,我没有使用 update
语句,而是使用 insert
将新的更新数据插入到同一个表中。两组数据都有一个相同的id
,它可以帮助我跟踪更改。该表还有一个自动增量
字段。如下所示:
> id Data Data_id
> 1. Data1 01
> 2. Data1_edit1 01
> 3. Data2 02
> 4. Data2_edit1 02
id 是 autoincrement
,Data_id 有助于记录更改。
该表也是可加时间戳
的。这样 Data1 将具有比 Data1_edit1 更低的时间戳。
假设我想获取 Data2
的最新更新记录,即 id
4
和 Data1
即 id
2
,我尝试使用以下方法执行此操作:
-> select("*")
-> from("data")
-> groupBy("Data_id")
正如预期的那样,这将返回 Data1
和 Data2
,我如何才能返回 Data1_edit1
和 Data2_edit1
?
正在使用Doctrine 2
和Mysql
感谢帮助。
谢谢。
最佳答案
select * from yourtable
where id in(select max(id) from yourtable group by data_id)
它工作正常。 SQL FIDDLE
关于mysql - 获取最近更新的记录 Doctrine Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12618662/