MySQL:SELECT和UPDATE在一个语句中

时间:2014-06-02 12:26:29

标签: mysql sql

我有:选择一些对。第一列是table中行的id,第二列是应该分配给该行的新值。

-- the first query
CREATE TABLE tmp;
SELECT row_id, new_value
FROM [not essential tables and joins];  //PSEUDOCODE

-- another queries
FOR EACH tmp //PSEUDOCODE
  UPDATE table SET value = new_value WHERE id = row_id;

-- QUESTION: CAN I MERGE SELECT AND UPDATE IN ONE QUERY? 
-- I want avoid creating temporary table.

问题:通过表进行迭代(如上例所示)会降低代码的清晰度和速度。

问题: *如何在单个查询中执行相同操作

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找更新表连接与其他表(不确定)。你可以做点什么

UPDATE tmp a 
    JOIN sometable b ON a.col = b.col 
    AND a.id = b.row_id 
SET a.value = b.new_value