MySql中使用INSERT INTO語句更新多條數據的例子
更新時間:2014年06月25日 11:28:52 投稿:junjie
這篇文章主要介紹了MySql中使用INSERT INTO語句更新多條數據的例子,MySQL的特有語法,需要的朋友可以參考下
我們知道當插入多條數據的時候insert支持多條語句:
復制代碼 代碼如下:
INSERT INTO t_member (id, name, email) VALUES
(1, 'nick', 'nick@126.com'),
(4, 'angel','angel@163.com'),
(7, 'brank','ba198@126.com');
但是對于更新記錄,由于update語法不支持一次更新多條記錄,只能一條一條執(zhí)行:
復制代碼 代碼如下:
UPDATE t_member SET name='nick', email='nick@126.com' WHERE id=1;
UPDATE t_member SET name='angel', email='angel@163.com' WHERE id=4;
UPDATE t_member SET name='brank', email='ba198@126.com' WHERE id=7;
這里問題就出現(xiàn)了,倘若這個update list非常大時(譬如說5000條),這個執(zhí)行率可想而知。
這就要介紹一下在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', 'nick@126.com'),
(4, 'angel','angel@163.com'),
(7, 'brank','ba198@126.com')
ON DUPLICATE KEY UPDATE name=VALUES(name), email=VALUES(email);
注意:ON DUPLICATE KEY UPDATE只是MySQL的特有語法,并不是SQL標準語法!
相關文章
MySQL錯誤:You can‘t specify target table&n
在編寫MySQL的UPDATE或DELETE語句時,如果子查詢中直接引用了要操作的目標表,可能會遇到一個常見的錯誤:You can’t specify target table ‘xxx’ for update in FROM clause,這個錯誤讓許多開發(fā)者感到困惑,本文將深入分析其原因,并提供多種解決方案,2025-02-02

