Mysql SQL在查询中引用当前记录(“this”)

Mysql SQL在查询中引用当前记录(“this”),mysql,Mysql,我有一张像这样的桌子: id | NODE_ID | last_updated 1 | 4 | 11-29-2010 ... 其中,使用“更新当前\u时间戳”对行进行任何更改后,将上次\u更新的列设置为更新 我需要更新节点ID为4到5的所有记录,但我想保持时间戳不变 我想做一个更新并引用查询中当前选择的行来手动设置时间戳,就像这样 更新作业集NODE_ID=4,last_updated=this.last_updated,其中NODE_ID=5 我可以用什么来替换查询中的“th

我有一张像这样的桌子:

id | NODE_ID | last_updated
1  |  4      | 11-29-2010 ... 
其中,使用“更新当前\u时间戳”对行进行任何更改后,将上次\u更新的列设置为更新

我需要更新节点ID为4到5的所有记录,但我想保持时间戳不变

我想做一个更新并引用查询中当前选择的行来手动设置时间戳,就像这样

更新作业集NODE_ID=4,last_updated=this.last_updated,其中NODE_ID=5

我可以用什么来替换查询中的“this”?如果我不能,那么做这类事情的最佳方式是什么

~z~肖恩

PS.mysql版本14.12发行版5.0.86,对于使用readline 5.1的redhat linux gnu(i686),这应该可以做到:

update jobs set NODE_ID=4, last_updated = last_updated where NODE_ID = 5;

ETA:最初我认为这不起作用,因为我认为
on update
约束将在您设置值后执行,删除您的“更改”(或缺少更改)。但这让我相信情况并非如此。

如果这是一次性更新,您可以在运行之前删除约束,然后在完成后添加约束。看见
我认为您想做的事情行不通,因为Mysql可能会在计算查询后触及时间戳。

因此我猜查询中存在对“this”记录的固有引用。这应该是显而易见的,因为您基本上总是在“where”子句中引用相同的(当前)记录。谢谢大家!