2015-12-28 191 views
3

我想更新狀態,但使用一個查詢!MySQL在一個查詢中結合了兩個UPDATE查詢

UPDATE myTable SET `status` = 0 WHERE `name` IN ('a', 'b', 'c', 'd') 
UPDATE myTable SET `status` = 1 WHERE `name` NOT IN ('a', 'b', 'c', 'd') 
+0

使用'情況when'聲明 –

+0

[在一個MySQL查詢更新多行(可能的重複http://stackoverflow.com/questions/18802671/update-multiple-rows-in-a-single -mysql-query) –

+0

試着用sql union或union在兩個查詢 – rohitr

回答

5

您可以使用CASE聲明。

UPDATE myTable 
SET status = (CASE 
        WHEN `name` IN ('a','b','c','d') THEN '0' 
        WHEN `name` NOT IN ('a','b','c','d') THEN '1' 
       END); 
+0

謝謝:) 它的工作100% –

+0

@TalalFarhat很高興爲您提供幫助。歡迎... – Sadikhasan

0

使 '狀態' 數據類型布爾默認值0和 「name NOT IN ('a', 'b', 'c', 'd')

使用

UPDATE myTable SET `status` = 1 WHERE `name` NOT IN ('a', 'b', 'c', 'd'); 

你不必跑兩個查詢。

+0

感謝您的回答,但狀態可以在更改後更改第一次插入.. –

+0

@Talal如果在第一次如何進行狀態更新之後無法進行狀態更新,您是否正在使用UPDATE更新狀態?或者當你使用布爾狀態時你面臨問題? –