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 ...