首页 > 解决方案 > 如何在 MYSQL 更新命令之前获取值?

问题描述

我有一条线:

Update <Table> Set <Value> = @NewValue Where RecordID = @RecordID;

但是,现在我发现自己需要用这个值的变化来更新另一个表。显然我可以做一个单独的查询来获取原件,或者我可以在我最初阅读它时保存原件。不过,优雅的答案是以某种方式返回它。

(RecordID 是唯一的,这不会返回多个值。)

标签: mysql

解决方案


您可以在一个查询中更新两个表

UPDATE t1
CROSS JOIN t2
SET t2.<value> = t1.<value>,
    t1.<value> = @NewValue
WHERE t1.RecordID = @RecordID1
AND t2.RecordID = @RecordID2

如果两个表的行是相关的,则使用 anINNER JOIN而不是CROSS JOIN,并将t2条件放在那里。


推荐阅读