我們知道當插入多條資料的時候insert支援多條語句:
insert into t_member(id,name,email)values
(1,'nick','[email protected]'),
(4,'angel','[email protected]'),
(7,'brank','[email protected]');
但是對於更新記錄,由於update語法不支援一次更新多條記錄,只能一條一條執行:
update t_member set name='nick',email='[email protected]' whereid=1;
update t_member set name='angel',email='[email protected]' whereid=4;
update t_member set name='brank',email='[email protected]' whereid=7;
這裡問題就出現了,倘若這個update list非常大時(譬如說5000條),這個執行率可想而知。
這就要介紹一下在mysql中insert語法具有乙個條件duplicate key update,這個語法和適合用在需要判斷記錄是否存在,不存在則插入存在則更新的記錄。
具體的語法可以參見:
基於上面這種情況,針對更新記錄,仍然使用insert語句,不過限制主鍵重複時,更新字段。如下:
insert into t_member(id,name,email) values
(1,'nick','[email protected]'),
(4,'angel','[email protected]'),
(7,'brank','[email protected]')
on duplicate key update name=values(name),email=values(email);
注意:on duplicate key update只是mysql的特有語法,並不是sql標準語法!
SQL更新多條資料
問題 有兩個不同的表,其中都有乙個編號的字段,而且儲存的內容是相同的,需要將一張表中的另外一些字段依據編號去與另乙個表中編號對應來更新到另乙個表中。方法 由於在sql中是不支援同時更新多條包含編號的資料的,所以當我們要更新多條資料的時候我們需要進行逐條的更新操作,這個時候我們需要用到游標。游標是只能...
mysql 中實現多條資料同時更新
有時間我們需要對一張表進行批量資料的更新。首先我們想的是update 語句。比如對一張訂單表order info 多條資料更新,update order inifo set order code case order id when 1 then abc when 2 then bcd when 3...
mysql 插入更新多條資料的效率問題
you can use this query update categories set display order case id when 1 then 3 when 2 then 4 when 3 then 5 end,title case id when 1 then new title 1...