获取上次更新的记录 学说 Mysql



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

> id Data            Data_id
> 1. Data1                01
> 2. Data1_edit1          01
> 3. Data2                02
> 4. Data2_edit1          02

id 是autoincrement的,Data_id有助于记录更改。该表也timestampable。这样 Data1 的时间戳将低于 Data1_edit1。

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

-> select("*") 
-> from("data")
-> groupBy("Data_id")

正如预期的那样,这将返回Data1 & Data2 ,我如何能够返回Data1_edit1Data2_edit1

正在使用Doctrine 2Mysql

感谢帮助。

谢谢。

select * from yourtable
where id in(select max(id) from yourtable group by data_id)

它工作正常。SQL FIDDLE

SQL 小提琴演示

你可以试试这个:

select * from data where (data_id, id ) in ( select data_id, max(id) from data group by Data_id );

相关内容

  • 没有找到相关文章

最新更新