国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

MySQL批量更新數據的六種方法,你能想出第七種嗎?

數據庫 MySQL
我們都知道MYSQL中批量插入非常簡單,那么批量更新呢?

我們都知道MYSQL中批量插入非常簡單,那么批量更新呢?

1.IN

IN 語句有比較大的局限性,更新后的結果必須一致。比如下面是將所有滿足條件的行的狀態(status)設置為1。

如果想部分設置為1,部分設置為2等,則無法實現,或者通過寫多條SQL語句實現。

Update users Set status=1 Where account IN ('xx1', 'xx2');

2. For + Update

借助 For 循環 + Update 語句,即逐一更新,優點是清晰直觀,適用于大部分情況,不易出錯。缺點是性能較差,容易造成堵塞。

如果是在MYSQL客戶端執行,這種方法很不方便。一般需要生成多條Update語句,或者可以用存儲過程實現。

3. Insert into…on duplicate key update

利用主鍵(或唯一鍵)的唯一性進行更新的好處是支持批量更新,更新結果不需要保持一致。缺點是一般第三方庫不支持這種語法,需要寫原生SQL,所有字段必須有默認值(包括NULL)。

create table users
(
id int(11) PRIMARY KEY AUTO_INCREMENT,
name varchar(255) NOT NUll DEFAULT '',
age smallint,
job varchar(255)
);

INSERT INTO go_business.users (id, name, age, job) VALUES (1, 'name1', 1, 'job1');
INSERT INTO go_business.users (id, name, age, job) VALUES (2, 'namw2', 2, 'job2');
INSERT INTO go_business.users (id, name, age, job) VALUES (3, 'name3', 3, 'job3');
INSERT INTO go_business.users (id, name, age, job) VALUES (4, 'name4', 4, 'job4');
INSERT INTO go_business.users (id, name, age, job) VALUES (5, 'name5', 5, 'job5');

mysql> insert into users (id, job, age) values (1, 'job11', 11),(2, 'job22', 22)
on duplicate key update job=values(job), age=values(age);

mysql> select * from users where id in (1, 2);
+----+-------+------+-------+
| id | name | age | job |
+----+-------+------+-------+
| 1 | name1 | 11 | job11 |
| 2 | namw2 | 22 | job22 |
+----+-------+------+-------+

4. Replace into

眾所周知,它是一個替換,相當于一個 update。語法類似于第三種方法,但比第三種方法更危險,因為更新時如果字段不完整,未覆蓋的字段將被設置為默認值。

replace into users(id, job, age) VALUES (1, 'job111', 111),(2, 'job222', 222);

mysql> select * from users where id in (1, 2);
+----+------+------+--------+
| id | name | age | job |
+----+------+------+--------+
| 1 | | 111 | job111 |
| 2 | | 222 | job222 |
+----+------+------+--------+
2 rows in set (0.00 sec)

原因是 replace into 操作的本質是先刪除重復記錄再插入,所以如果更新的字段不完整,缺失的字段會被設置為默認值,而 insert into 只是更新重復記錄,不會改變其他字段。

5. Set…case…when…where

  • 優點:可以批量更新,也支持更新多個字段,更新多個結果。
  • 缺點:語句較長,實現起來比較麻煩,也比較容易出錯。

通常它是通過主鍵或唯一鍵更新的。

update users 
set job = case id
when 1 then 'job11'
when 2 then 'job12'
end,
age = case id
when 1 then 11
when 2 then 12
end
where id IN (1, 2);

mysql> select * from users where id in (1, 2);
+----+-------+------+-------+
| id | name | age | job |
+----+-------+------+-------+
| 1 | name1 | 11 | job11 |
| 2 | name2 | 12 | job12 |
+----+-------+------+-------+

一般這種方式也比較容易出錯,主要有兩種:

update users
set job = case id
when 1 then 'job11'
when 3 then 'job13'
end,
age = case id
when 1 then 11
when 2 then 12
end
where id IN (1, 2);

select * from users where id in (1, 2);
+----+-------+------+-------+
| id | name | age | job |
+----+-------+------+-------+
| 1 | name1 | 11 | job11 |
| 2 | name2 | 12 | NULL |
+----+-------+------+-------+

update users
set job = case id
when 1 then 'job11'
when 2 then 'job12'
end,
age = case id
when 1 then 11
when 2 then 12
end;

select * from users;
+----+-------+------+-------+
| id | name | age | job |
+----+-------+------+-------+
| 1 | name1 | 11 | job11 |
| 2 | name2 | 12 | job12 |
| 3 | name3 | NULL | NULL |
| 4 | name4 | NULL | NULL |
| 5 | name5 | NULL | NULL |
+----+-------+------+-------+

通過上面的測試,我們可以看出這種操作方式是相當危險的。一不小心,字段就會更新為默認值,所以使用的時候一定要非常小心,一定不能漏掉Where子句

6.創建臨時表

臨時表的方式是替換另一個表的數據,但是一般情況下我們是沒有創建表的權限的,所以這個想法可能不太現實。

create temporary table users_tmp
(
id int(11) PRIMARY KEY AUTO_INCREMENT,
age smallint,
job varchar(255)
);

insert into users_tmp(id, job, age) values (1, 'job11', 11), (2, 'job22', 22);

update users, users_tmp set users.job=users_tmp.job, users.age=users_tmp.age where users.id=users_tmp.id;


責任編輯:華軒 來源: 今日頭條
相關推薦

2010-10-08 11:13:22

MySQL修改密碼

2022-05-30 16:42:20

數據中心

2011-02-24 10:56:34

人才

2023-09-06 08:00:00

ChatGPT數據分析

2011-12-16 14:45:36

JavaJSP

2011-05-30 13:37:46

JSP

2016-09-28 20:05:22

2021-11-19 10:10:14

手機移動設備網絡攻擊

2015-06-09 15:23:50

2024-07-29 08:00:00

2023-04-18 15:57:30

2022-10-27 08:09:33

2025-01-02 08:21:32

2022-09-30 10:48:12

AR制造業

2023-12-08 08:53:37

數據中心人工智能自動化

2022-01-21 10:42:55

IT領導者IT事業職業顧問

2021-12-06 06:58:50

List重復數據

2015-07-09 10:13:05

IT基礎設施支出數據中心

2025-07-14 03:00:00

2025-01-03 08:48:20

列表推導式Python編程
點贊
收藏

51CTO技術棧公眾號

97久久人人超碰caoprom欧美| jlzzjlzz欧美| 538在线视频观看| 97在线超碰| 国产精品欧美久久久久一区二区| 日本精品免费视频| 免费观看在线午夜影视| 久久亚洲精品中文字幕蜜潮电影| 免费在线稳定资源站| 另类中文字幕网| 黄色激情在线播放| 综合国产在线视频| 深夜福利视频在线免费观看| 国产无遮挡裸体免费久久| 亚洲人成在线观看| 视频二区不卡| 亚洲人成电影网站| 多野结衣av一区| 日韩激情在线视频| 东京一区二区| 日韩在线视频国产| 这里视频有精品| 97精品国产97久久久久久春色| 91亚洲无吗| 日本免费久久高清视频| 日韩精品免费一区二区三区| 国产精品永久免费视频| 欧美精品麻豆| 91久久久一线二线三线品牌| 99在线|亚洲一区二区| 明星裸体视频一区二区| 午夜在线精品| 亚洲国产成人精品一区二区| 黄色一级片视频| 国产一区二区三区久久久| 国产精品影片在线观看| 亚洲天堂网站| 日韩中文字幕在线视频| 高清不卡一区| 免费的av在线| 久久66热re国产| 欧美美女黄色网| 97久久精品人人澡人人爽| 日韩欧美亚洲综合| 国产成人生活片| 欧美久久综合| 久久天天躁狠狠躁夜夜爽蜜月| 久久99中文字幕| 97超碰在线公开在线看免费| 国产精品久久久久久久久动漫| 国产精品超碰| 亚洲大片免费看| 韩日视频在线| 狠狠躁夜夜躁人人躁婷婷91| 女人体1963| 一区二区三区中文免费| 国产a级网站| 精品久久久久久久久久ntr影视| 欧美禁忌电影| 亚洲国产精品资源| 奇米一区二区| 91最新国产视频| 国产一区二区三区久久悠悠色av| 中文字幕国产传媒| 欧美性高清videossexo| 怡红院成人在线| 国产精品国产亚洲伊人久久 | 欧美精品情趣视频| 91精品国产色综合久久不卡粉嫩| 中国china体内裑精亚洲片| 欧洲亚洲精品久久久久| 97视频免费在线看| 欧美大片一区| 永久免费在线| 一区二区三区四区高清视频| 国产chinese精品一区二区| 国产 欧美在线| 在线看的网站你懂| 一本色道久久88精品综合| 国产一区二区三区四区二区| 中文字幕久精品免| 欧美日韩在线另类| www久久久| 欧美xxxx黑人又粗又长精品| 综合久久国产九一剧情麻豆| 亚洲手机成人高清视频| 婷婷国产在线| 中文字幕日韩欧美| 亚洲高清资源| 高清免费观看在线| 日韩视频亚洲视频| 成人免费高清视频在线观看| 国产区美女在线| 欧美精品激情在线观看| 蜜臀av一级做a爰片久久| 一二三区高清| 中文字幕日韩精品在线| 亚洲免费精品| 理论视频在线观看| xvideos亚洲人网站| 免费观看日韩av| 国产一区精品| 97国产精品人人爽人人做| 国产专区欧美精品| 欧美三级黄美女| 操碰在线免费| 亚洲乱码国产乱码精品精| 国产精品一区2区3区| 成 年 人 黄 色 大 片大 全| 国产精品国产三级国产| 老司机av在线免费看| 很黄的网站在线观看| 精品无人乱码一区二区三区| 日本久久久久久久| 亚洲视频一区二区在线| 日韩精品一区二区三区色欲av| 欧美美女喷水视频| 四虎8848精品成人免费网站 | 午夜成年人在线免费视频| 国产精品偷伦视频免费观看国产 | 日本10禁啪啪无遮挡免费一区二区| 一区二区三区国产豹纹内裤在线| 欧美高清你懂的| 一二三在线视频| 亚洲精品美女在线观看| 日本亚洲免费观看| 成人av黄色| 免费久久99精品国产自| 欧美日韩午夜在线视频| 极品尤物久久久av免费看| 韩国福利在线| 99久久无色码| 欧美性猛交xxxxxx富婆| 你懂的一区二区| 男人天堂综合| 99久久伊人精品影院| 在线观看成人小视频| 欧美日韩国产色综合一二三四| 日产精品久久久久久久性色| 51成人做爰www免费看网站| 91官网在线免费观看| 伊人久久大香线蕉综合热线| 在线看av的网址| 日本不卡在线观看| 亚洲精品不卡在线| 成人免费视频一区| 香蕉免费一区二区三区在线观看| 天堂中文视频在线| 日韩免费黄色av| 午夜精彩视频在线观看不卡| 亚洲在线久久| 国产精品一卡二卡三卡| 日韩在线电影一区| 亚洲欧美在线第一页| www.亚洲国产| 青草久久视频| 国产在线视频网| 任我爽在线视频精品一| 中文一区二区视频| 国产精品久久久久久久久免费丝袜| 久久最新网址| 日本激情在线观看| 草草草视频在线观看| 午夜精品一区二区三区视频免费看| 亚洲自拍偷拍欧美| 国产亚洲永久域名| 日韩毛片在线| 女人黄色片免费| 欧美午夜精品久久久久免费视| 国产一区二区三区久久精品| 国产精品毛片a∨一区二区三区| 我不卡手机影院| 麻豆网站在线免费观看| 国产盗摄视频在线观看| 国产91精品青草社区| 欧美日韩三级视频| 国产精品一区在线| 九九精品在线| 欧美性xxxx极品hd满灌| 成年人视频在线| www.日日操| 日韩视频一二三| 大陆极品少妇内射aaaaaa| 99国产高清| 国产精品电影网| 亚洲精品成人a在线观看| 92久久精品| 另类小说第一页| 国产成人看片| 日韩视频第一页| 欧美午夜性色大片在线观看| 黑人巨大精品欧美一区| 国产一区二区三区四区二区| 自拍亚洲图区| av黄色免费在线| 国产香蕉一区二区三区| 欧美洲成人男女午夜视频| 欧美不卡一二三| 亚洲女与黑人做爰| 国产精品1区2区3区在线观看|