【发布时间】:2009-02-13 13:21:59
【问题描述】:
有什么方法可以更新 mysql 选择查询的 select_expr 部分中的表。这是我想要实现的一个示例:
SELECT id, name, (UPDATE tbl2 SET currname = tbl.name WHERE tbl2.id = tbl.id) FROM tbl;
这在 mysql 中给了我一个错误,但我不明白为什么只要我不更改 tbl 就不可能。
编辑: 我将澄清为什么我不能为此使用普通的构造。
这是我正在处理的问题的更复杂示例:
SELECT id, (SELECT @var = col1 FROM tbl2), @var := @var+1,
(UPDATE tbl2 SET col1 = @var) FROM tbl WHERE ...
所以我基本上处于这样一种情况,即我在 select 语句期间递增一个变量,并希望在我选择行时反映这种变化,因为我在执行期间使用这个变量的值。此处给出的示例可能可以通过其他方式实现,但是由于不必要的代码太多,我不会在此处发布的实际示例需要此功能。
【问题讨论】: