程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySql中使用INSERT INTO語句更新多條數據的例子

MySql中使用INSERT INTO語句更新多條數據的例子

編輯:關於MYSQL數據庫

我們知道當插入多條數據的時候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]' WHERE id=1;
UPDATE t_member SET name='angel', email='[email protected]' WHERE id=4;
UPDATE t_member SET name='brank', email='[email protected]' WHERE id=7;
這裡問題就出現了,倘若這個update list非常大時(譬如說5000條),這個執行率可想而知。

這就要介紹一下在MySql中INSERT語法具有一個條件DUPLICATE KEY UPDATE,這個語法和適合用在需要判斷記錄是否存在,不存在則插入存在則更新的記錄。

具體的語法可以參見:http://dev.mysql.com/doc/refman/5.0/en/insert.html

基於上面這種情況,針對更新記錄,仍然使用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標准語法!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved