1. 程式人生 > >帶WHERE子句的UPDATE語句

帶WHERE子句的UPDATE語句

目前演示的幾個UPDATE語句都是一次性更新所有行的資料,這無法滿足只更新符合特定條件的行的需求,比如“將Tom 的年齡修改為12 歲”。要實現這樣的功能只要使用WHERE 子句就可以了,在WHERE 語句中我們設定適當的過濾條件,這樣UPDATE 語句只會更新符合WHERE子句中過濾條件的行,而其他行的資料則不被修改。

執行下邊的UPDATE語句:


UPDATE T_Person SET FAge = 12 WHERE FNAME="Tom" 

執行完此SQL語句後執行SELECT * FROM T_Person來查看錶中的資料的變化:

可以看到只有第一行中的FAGE 被更新了。WHERE子句“WHERE FNAME="Tom"”表示我們只更新FNAME欄位等於"Tom"的行。由於FNAME 欄位等於"Tom"的只有一行,所以僅有一行記錄被更新,但是如果有多個符合條件的行的話將會有多行被更新,比如下面UPDATE 語句將所有年齡為25 的人員的備註資訊修改為“BlaBla”:


UPDATE T_Person SET FRemark = "BlaBla" WHERE FAge =25 

執行完此SQL語句後執行SELECT * FROM T_Person來查看錶中的資料的變化。

目前為止我們演示的都是非常簡單的WHERE 子句,我們可以使用複雜的WHERE 語句來滿足更加複雜的需求,比如下面的UPDATE 語句就用來將FNAME 等於’Jim’或者’LXF’的行的FAge欄位更新為22:


UPDATE T_Person SET FAge = 22 WHERE FName ="jim" OR FName="LXF" 

執行完此SQL語句後執行SELECT * FROM T_Person來查看錶中的資料的變化。

這裡我們使用OR邏輯運算子來組合兩個條件來實現複雜的過濾邏輯,我們還可以使用OR、NOT等運算子實現更加複雜的邏輯,甚至能夠使用模糊查詢、子查詢等實現高階的資料過濾。