作者dwadefans (wade)
看板Database
標題[SQL ] UPDATE同欄位但是判斷不同的條件
時間Mon Sep 21 13:59:04 2015
資料庫名稱: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
→ moyasi: else 09/21 14:27
→ dwadefans: 感謝大大~~我使用else解決了~ 09/21 14:32
→ dwadefans: 在then 999後加入else `number`就ok了!!! 09/21 14:33
→ dwadefans: 後半段的where會不會是多餘的呢? 09/21 16:33
→ moyasi: 後半段where不下條件就直接針對整個table 09/21 23:52