2014-04-26 66 views
1

我一直在做一些研究,並且發現用UPDATE語句故意嵌套SELECT查詢是不太可能的。我看到有一些可能的解決方法,涉及創建表的臨時虛擬副本,因爲顯然,您無法同時更新並從同一個表中進行選擇。帶有嵌套SELECT查詢的MySQL 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 
) 

回答

3

你爲什麼不直接使用WHERE這樣的:

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

這將只更新所需的行不先選擇它們。

+0

FACEPALM !!!!!!! – Armin