使用嵌套SELECT查询的MySQL UPDATE查询

时间:2014-04-26 07:46:29

标签: mysql sql select

我一直在做一些研究,但我发现用SELECT语句故意嵌套UPDATE查询是不可能的。我已经看到有一些可能的解决方法,包括创建表的临时虚拟副本,因为显然您无法同时更新和选择同一个表。

我无法让任何一个例子起作用,所以我回到原点。下面你将看到我喜欢的视觉表现形式。

嵌套的SELECT查询将返回4或5个ID,并且我希望为每个行更新一列到0。我希望我想做的事情有道理。

提前感谢您的所有帮助和见解。

UPDATE
    `my_table`
SET
    `my_column_1` = 0
WHERE 
    `id`
IN  (
    SELECT
        `id`
    FROM
        `my_table`
    WHERE
        `my_column_2` = 35
    AND
        `my_column_3` = 3
    AND
        `id` != 136
)

1 个答案:

答案 0 :(得分:3)

为什么不像这样使用WHERE

UPDATE
    `my_table`
SET
    `my_column_1` = 0
WHERE 
    `my_column_2` = 35
    AND `my_column_3` = 3
    AND `id` != 136

这将只更新所需的行而不先选择它们。