2013-04-01 43 views
-1

假設我有一個名爲'PRODUCTS'的表,並且我需要在銷售完成時更新此表。有沒有辦法將所有更新合併到一個SQL語句中?在一個SQL命令內更新表中的多個行

目前,我有這樣的:

UPDATE PRODUCT 
SET PROD_Q=PROD_Q - 1 
WHERE PROD_CODE='A' 

UPDATE PRODUCT 
SET PROD_Q=PROD_Q - 1 
WHERE PROD_CODE='B' 

... 

是不是有這樣做的更有效的方法?

+0

嗯雙方的值更新.. 。'update product set prod_q = prod_q - 1 where('A','B','C');'(或其他)中的prod_code? – 2013-04-01 16:37:52

+1

只要您銷售每種產品中的一種,@sgeddes就會給您一個正確的答案。但是,如果您出售A中的1個和B中的2個,那麼單獨的查詢可能是您最好的選擇。 –

回答

3

這是你在找什麼 - 使用IN

UPDATE PRODUCT 
SET PROD_Q=PROD_Q - 1 
WHERE PROD_CODE IN ('A','B') 
1

,您是否試圖

UPDATE PRODUCT SET PROD_Q=PROD_Q-1 WHERE PROD_CODE='A' OR PROD_CODE='B' 

這將爲prod_code