溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql update case如何更新字段值不固定的操作

發(fā)布時間:2021-02-08 14:41:59 來源:億速云 閱讀:391 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了mysql update case如何更新字段值不固定的操作,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

在處理批量更新某些數(shù)據(jù)的時候,如果跟你更新的字段的值都一樣,比如某個狀態(tài)都更新為某個固定值,

直接用update table set xxx=xxx where xxx=xxx 這種即可

如果要更新的字段的值是不固定的,用下面的update case when where 這種方式就更方便了

UPDATE tablename 
set a1= CASE userid 
 WHEN 1 THEN a1+5 
 WHEN 2 THEN a1+2 
 END,
a2= CASE userid 
 WHEN 1 THEN a2-5 
 WHEN 2 THEN a2-2
END
where userid in (1,2)

用update case when 更新的時候一定要帶上 where 條件,否則會更新整張表,后果很嚴(yán)重。

補(bǔ)充:Mysql update && case when 聯(lián)合使用 批量更新

直接碼sql:

room字段值為 18F-N01 這種格式

UPDATE t_report SET room = CONCAT_WS( '-', SUBSTRING_INDEX(room, '-', 1) ,
 CASE SUBSTRING_INDEX(room, '-', -1) 
 WHEN 'N01' THEN 'N02' 
 WHEN 'N02' THEN 'N01'
 WHEN 'N03' THEN 'N11'
 WHEN 'N04' THEN 'N10'
 WHEN 'N05' THEN 'N09'
 WHEN 'N06' THEN 'N08'
 WHEN 'N07' THEN 'N07'
 WHEN 'N08' THEN 'N06'
 WHEN 'N09' THEN 'N05'
 WHEN 'N10' THEN 'N03'
 END )
WHERE rid IN ( 
 SELECT rid FROM t_report WHERE rdate = '190306' AND ordinal BETWEEN '23' AND '32'
)

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“mysql update case如何更新字段值不固定的操作”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI