2012-08-30 33 views
0

我從帖子表中得到了這個查詢中的ID(要更新的行),這些ID作爲等級表中的行,我想將一個var設置爲1,將此數組中的其他值設置爲0,並保留其餘在分級表中的行不變:如何更新選定列表中的一個var並將其他值設置爲零?

SELECT ID FROM posts 
WHERE post_parent = '' 
AND post_status IN ('') 
AND post_type = '' 

我想了解如何更新如上所述的成績表。謝謝!

回答

1

可以使用此解決方案:

UPDATE grade g 
JOIN post p ON g.id   = p.id 
      AND p.post_parent = $parent_id 
      AND p.post_status = $post_status 
      AND p.post_type = $post_type 
SET g.grade = CASE WHEN g.id = $id THEN 1 ELSE 0 END 
+0

有從另一個表選擇id的陣列。你的意思是是一個id值? – Jenny

+0

@Jenny你如何檢索這個id數組?它在另一個SELECT中嗎?你可以舉一個你的數據的例子,你想更新什麼? –

+0

我剛剛更新了我的問題,那是來自 – Jenny

相關問題