[SQL ] UPDATE同欄位但是判斷不同的條件

看板Database作者 (wade)時間8年前 (2015/09/21 13:59), 8年前編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
資料庫名稱:SQLite 資料庫版本:null 內容/問題描述: 我有個資料是如圖1 http://i.imgur.com/TUMiQtL.png
在這邊我想使用一行指令update多筆row的資料 在這邊假設我只update一筆資料 在這邊參考此篇的寫法http://goo.gl/sz4l09 我想要UPDATE pid='B'且spec='L'的number數量改為999 http://i.imgur.com/J4oTOZU.png
--------SQL指令------------ UPDATE test SET `number` = (case when pid='B' and spec='L' then 999 END) WHERE pid in ('A','B') AND spec in ('S','M','L','XL'); --------------------------- 但是使用此寫法後除了該筆資料number欄位改為999, 其餘row的number欄位皆變為null 可是其他的我想讓它保持原來的數值不要去改變它 http://i.imgur.com/3XQkagm.png
請問能怎麼做呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.43.23.4 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1442815147.A.65A.html ※ 編輯: dwadefans (115.43.23.4), 09/21/2015 13:59:31

09/21 14:27, , 1F
else
09/21 14:27, 1F

09/21 14:32, , 2F
感謝大大~~我使用else解決了~
09/21 14:32, 2F

09/21 14:33, , 3F
在then 999後加入else `number`就ok了!!!
09/21 14:33, 3F

09/21 16:33, , 4F
後半段的where會不會是多餘的呢?
09/21 16:33, 4F

09/21 23:52, , 5F
後半段where不下條件就直接針對整個table
09/21 23:52, 5F
文章代碼(AID): #1L_vohPQ (Database)