MySQL批量更新語句

2021-08-03 15:15:19 字數 2061 閱讀 2555

update mytable set 

myfield = case id

when

1then

'value'

when

2then

'value'

when

3then

'value'

endwhere id in (1,2,3)

例如

update categories set 

display_order = case id

when

1then

3when

2then

4when

3then

5end,

title = case id

when

1then

'new title 1'

when

2then

'new title 2'

when

3then

'new title 3'

endwhere id in (1,2,3)

這句sql的意思是,更新display_order 字段,如果id=1 則display_order 的值為3,如果id=2 則 display_order 的值為4,如果id=3 則 display_order 的值為5。

即是將條件語句寫在了一起。

這裡的where部分不影響**的執行,但是會提高sql執行的效率。確保sql語句僅執行需要修改的行數,這裡只有3條資料進行更新,而where子句確保只有3行資料執行。

update test_user set

`password` = case

when id=1

and name='rose'

then

'2fffffffff'

when id=2

and name='jack'

then

'2fddddddd'

else

`password`

end

update

`table`

set

total = case

when goodsid=50

and id=21

and storeid=3

then

86when goodsid=49

and id=22

and storeid=3

then

85else total end ,

openid = case

when goodsid=50

and id=21

and storeid=3

then

'aaa'

when goodsid=49

and id=22

and storeid=3

then

'bbb'

else openid end

例如:

update

`ims_sz_yi_store`

set`district_id` = case

when id=5

and uniacid=2

then

3when id=8

and uniacid=3

then

7else

`district_id`

end

create

temporary

table tmp(id int(4) primary

key,dr varchar(50));

insert

into tmp values (0,'gone'), (1,'xx'),...(m,'yy');

update test_tbl, tmp set test_tbl.dr=tmp.dr where test_tbl.id=tmp.id;

MySql批量更新語句(UPDATE)

下面建立乙個名為 bhl tes 的資料庫,並建立名為 test user 的表,字段分別為 id age name create database ifnot exists bhl test 檢視結果 檢視結果 張三 18 男 趙四 17 女 劉五 16 男 周七 19 女 檢視結果 張三 whe...

php生成原生mysql批量更新語句

主要的 function batchupdate data,field,table,params updates parseupdate data,field where parseparams params 獲取所有鍵名為 field列的值,值兩邊加上單引號,儲存在 fields陣列中 array...

SQL注入批量更新語句

sql 2000解決方法 declare fieldtype sysname set fieldtype varchar 刪除處理 declare hcforeach cursor global forselect n update quotename o.name n set quotename ...