根据选择的数据更新

时间:2014-09-25 16:01:06

标签: mysql

我有一个返回

的查询

主键|值

我想更新我的数据,其中主键=主键和值=另一个值。所以基本上我有

SELECT
    id,
    custom_value
FROM custom
JOIN user
USING (user_id)
WHERE id = 45
AND custom_name = "stuff";

这会产生

id | custom_value
1  | stuff
2  | stuff 2

然后我想用

更新现有的数据库
UPDATE table SET field = custom_value WHERE id = id;

或者,如果我使用第一行,那么

UPDATE table SET field = 'stuff' WHERE id = 1;

我怎么能这样做?

因此...

SELECT                          UPDATE table
    id,               ->        WHERE id = id
    custom_value      ->        SET field = custom_value
FROM custom
JOIN user
USING (user_id)
WHERE id = 45
AND custom_name = "stuff";

选择数据,然后使用该数据更新另一个表。

1 个答案:

答案 0 :(得分:0)

两个步骤:

create temporary table tmp_tbl as select .... your select goes here;

然后

update table, tmp_tbl
set table.field = tmp_tbl.custom_value
where table.id = tmp_tbl.id

然后,可选择清理不需要的数据:

drop table tmp_tbl

(或者让MySQL在会话关闭时自动删除它。)