Mysql update join 單錶批量更新

2021-10-24 19:23:47 字數 1220 閱讀 7458

mysql 的批量插入比較便利,批量更新就有點難受了。這裡記錄一下,使用update join 對mysql單錶的批量更新操作。

更具表中content_idouteach_id字段改變sort的值,(不要問為啥不用id,業務需要。)如下圖。

有一招update join

update

`表a` a join

(select

1as content_id,

1as outreach_id,

1as sort

union

select

1as content_id,

2as outreach_id,

2as sort

union

select

1as content_id,

3as outreach_id,

3as sort

union

select

1as content_id,

4as outreach_id,

4as sort

) b using

(content_id, outreach_id)

set a.sort=b.sort;

解釋:

update join 可以用來跨表更新,這個網上就有很多了。 單錶更新的思路就是把需要更新的資料組合成一張表,然後通過跨表來更新單錶的資料。

這裡就不能使用常用的case when來更新資料。

update test

set sort =

(case

when content_id =

1and outeach_id =

1then

1when content_id =

1and outeach_id =

2then

2end

)where id in(1

,2,3

);

mysql之using用法

MySQL 避免重複資料的批量插入與批量更新

我們在向資料庫裡批量插入資料的時候,會遇到要將原有主鍵或者unique索引所在記錄更新的情況,而如果沒有主鍵或者unique索引衝突的時候,直接執行插入操作。這種情況下,有三種方式執行 直接每條select,判斷,然後insert,毫無疑問,這是最笨的方法了,不斷的查詢判斷,有主鍵或索引衝突,執行u...

批量刪除表

批量刪除表 方法1 select truncate table object name from user objects where object name like ky prj temp and object type table command windows 下執行查詢結果 方法2 sel...

表批量更新

通過指令碼,更改表結構 不同的資料庫,更新語句不同,請注意 oracle資料庫 alter table tb md task add pk dept varchar2 20 sqlserver資料庫 alter table tb md task add pk dept nvarchar 20 由於資...