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 符合多個條件更新內容...