2012-01-25 50 views
0

我有一個查詢正在更新其中傳遞的用戶的狀態。更新在查詢中傳遞的用戶的狀態

update userinfo set status=1 where id in 
(select id from userinfo where name in ('viki','nik','mike')); 

查詢工作正常。 但問題是假設'nik'的名字不存在於數據庫中。 然後查詢將不適用於'nik'之後的其餘用戶。 我怎樣才能確保更新查詢運行每個人?

在此先感謝。

回答

1

它將起作用,無論您的表中是否存在userinfo表中的一個名稱。

還有:你爲什麼要運行第二個查詢來從你想更新的同一張表中獲得一個id列表?只要去:

UPDATE userinfo 
SET status = something 
WHERE name IN ('viki','nik','mike'); 
1

它會工作。查詢:

select id from userinfo where name in ('viki','nik','mike') 

將返回ID對'viki「和」 mike「即使」 nik「是不存在的。

爲什麼你認爲它不起作用?