mysql - 如何在 MYSQL 更新命令之前获取值?
问题描述
我有一条线:
Update <Table> Set <Value> = @NewValue Where RecordID = @RecordID;
但是,现在我发现自己需要用这个值的变化来更新另一个表。显然我可以做一个单独的查询来获取原件,或者我可以在我最初阅读它时保存原件。不过,优雅的答案是以某种方式返回它。
(RecordID 是唯一的,这不会返回多个值。)
解决方案
您可以在一个查询中更新两个表
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
条件放在那里。
推荐阅读
- python - 为什么我不能输入 tkinter Text 小部件?
- bash - 在 Bash 中,如何将标准输出设置为 tee 内的变量
- c# - 实体框架和表关系错误输出
- php - leftJoin 在 laravel eloquent 中不能正常工作?
- react-native - 反应原生文本对齐并居中
- unity3d - 无法使用 UnityWebRequest 下载大小超过 63kb 的文件
- python - 为什么负索引为零不起作用?
- php - 如何通过数组值点击链接
- sql-server - SQL Server中根据不同类型选择上一行
- amazon-web-services - Lambda 在 Localstack 中检索 SSM 参数