mysql - 获取最近更新的记录 Doctrine Mysql

标签 mysql select doctrine-orm

我需要编辑表中存在的数据。编辑后,我想保留旧数据的副本。因此,我没有使用 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 4Data1id 2 ,我尝试使用以下方法执行此操作:

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

正如预期的那样,这将返回 Data1Data2,我如何才能返回 Data1_edit1Data2_edit1

正在使用Doctrine 2Mysql

感谢帮助。

谢谢。

最佳答案

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

它工作正常。 SQL FIDDLE

SQL Fiddle Demo

关于mysql - 获取最近更新的记录 Doctrine Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12618662/

相关文章:

mysql - app.js 中的代码停止加载 CSS 资源

java - 从下拉列表中选择在 mozilla 中不起作用

SQL如何返回具有最近日期和最高int值的记录

tsql - 如何在 T-SQL 存储过程中使用可选参数?

symfony - 找不到 Doctrine Query Builder ACOS 函数

symfony - Doctrine query_cache 自动过期

mysql - 使用node js单独获取JSON格式值

java - hibernate + "ON DUPLICATE KEY"逻辑

MySQL INTERSECT 通过连接表?

mysql - Doctrine 2 发出了不需要的查询,或者也许我错了,但这是必要的?