MySql中4種批量更新的方法

2022-07-16 15:12:16 字數 1955 閱讀 8421

replace into test_tbl (id,name) values (1,'a'),(2,'b'),(x,'y');
示例:

replace into book (

'id',

'author',

'createdtime',

'updatedtime'

)values

(1,'張飛','2016-12-12 12:20','2016-12-12 12:20'),

(2,'關羽','2016-12-12 12:20','2016-12-12 12:20');

表中需要存在唯一索引

insert into test_tbl (id,name) values (1,'a'),(2,'b'),(x,'y') on duplicate key update name=values(name);
示例:

insert into book 

(id,author,createdtime,updatedtime)

values

(1,'張飛2','2017-12-12 12:20','2017-12-12 12:21'),

(2,'關羽2','2017-12-12 12:20','2017-12-12 12:21'),

(3,'劉備','2017-12-12 12:21','2017-12-12 12:21')

on duplicate key update

author=values(author),

createdtime=values(createdtime),

updatedtime=values(updatedtime);

replace into  和 insert into on duplicate key update的不同在於:

create temporary table tmp(id int(4) primary key, name 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;

注意:這種方法需要使用者有temporary 表的create 許可權。

注:mysql 實現批量 可以用點小技巧來實現

update t_user

set

age = case id

when 1 then 23

when 2 then 24

when 3 then 25

end,

name = case id

when 1 then '張飛2'

when 2 then '關羽2'

when 3 then '劉備2'

endwhere id in (1,2,3)

mybatis xml示例:

update dic_col_display

set column_code = case id

when # then #

end,

modify_user_name = case id

when # then #

end,

modify_date = now()

where

id in

#

MySql中4種批量更新的方法

replace into test tbl id,dr values 1,2 2,3 x,y 例 replace into book id author createdtime updatedtime values 1,張飛 2016 12 12 12 20 2016 12 12 12 20 2,關...

MySql中4種批量更新的方法

最近在完成mysql專案整合的情況下,需要增加批量更新的功能,根據網上的資料整理了一下,很好用,都測試過,可以直接使用。mysql 批量更新共有以下四種辦法 1 replace into 批量更新 replace into test tbl id,dr values 1,2 2,3 x,y 例子 r...

MySql批量更新方法

準備資料 表 user 使用者 dept 部門 1 更新符合單個條件的某個欄位的一條資料 update user u set u.name 測試 where u.id 2 in 更新多條資料 update user u set u.name 測試 where u.id in 3 符合多個條件更新內容...