作者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://webptt.com/cn.aspx?n=bbs/Database/M.1442815147.A.65A.html
※ 编辑: dwadefans (115.43.23.4), 09/21/2015 13:59:31
1F:→ moyasi: else 09/21 14:27
2F:→ dwadefans: 感谢大大~~我使用else解决了~ 09/21 14:32
3F:→ dwadefans: 在then 999後加入else `number`就ok了!!! 09/21 14:33
4F:→ dwadefans: 後半段的where会不会是多余的呢? 09/21 16:33
5F:→ moyasi: 後半段where不下条件就直接针对整个table 09/21 23:52