Oracle 將多條update語句合併為一條

2021-09-26 05:07:59 字數 980 閱讀 8728

1.oracle版本 11g

2.mybatis版本 3.2.3

批量修改資料,但where條件不一樣。

表名 tablename

要求將字段a的值為1的資料修改其欄位b的值為「b1」;將字段a的值為2的資料修改其欄位b的值為「b2」;將字段a的值為3的資料修改其欄位b的值為「b3」

一、對此可以寫3條update語句來實現需求

update tablename set b = 'b1' where a = '1'

update tablename set b = 'b2' where a = '2'

update tablename set b = 'b3' where a = '3'

二、對多條update語句進行合併

update tablename set b = (case a

when '1' then 'b1'

when '2' then 'b2'

when '3' then 'b3'

end)

where a in ('1','2','3')

1.定義入參listlist = new arraylist<>()

2.list中新增值(偽**)

t1.seta("1");t1.setb("b1");list.add(t1);

t1.seta("2");t1.setb("b2");list.add(t2);

t1.seta("3");t1.setb("b3");list.add(t3);

update tablename

setb = (case a

open=" " separator=" " close=" ">

when # then #

end)

where a in

open="(" separator="," close=")"> #

mysql一條語句update多條記錄

通常情況下,我們會使用以下sql語句來更新字段值 update mytable set myfield value where other field other value 但是,如果你想更新多行資料,並且每行記錄的各字段值都是各不一樣,你會怎麼辦呢?剛開始你可能會想到使用迴圈執行多條update...

Oracle批量Update記錄

工作中經常用到oracle批量更新記錄,做為老手也怕出錯,總之要小心再小心,確保資料批量更新正確。下面舉乙個例子 1 建立兩張結構類似的表,建表語句如下 create table jayt1 id int,code varchar2 8 create table jayt2 id int,code ...

sql 使用觸發器如何update多條記錄

begin 建立tb1表 if object id tb1 u is not null drop table tb1 gocreate table tb1 id int,name varchar 10 state int default 0 declare n int set n 0 while n...