MySql中使用INSERT INTO語句更新多條數(shù)據(jù)的例子
我們知道當(dāng)插入多條數(shù)據(jù)的時(shí)候insert支持多條語句:
INSERT INTO t_member (id, name, email) VALUES
(1, 'nick', 'nick@126.com'),
(4, 'angel','angel@163.com'),
(7, 'brank','ba198@126.com');
但是對(duì)于更新記錄,由于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)了,倘若這個(gè)update list非常大時(shí)(譬如說5000條),這個(gè)執(zhí)行率可想而知。
這就要介紹一下在MySql中INSERT語法具有一個(gè)條件DUPLICATE KEY UPDATE,這個(gè)語法和適合用在需要判斷記錄是否存在,不存在則插入存在則更新的記錄。
具體的語法可以參見:http://dev.mysql.com/doc/refman/5.0/en/insert.html
基于上面這種情況,針對(duì)更新記錄,仍然使用insert語句,不過限制主鍵重復(fù)時(shí),更新字段。如下:
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標(biāo)準(zhǔn)語法!
- Mysql插入數(shù)據(jù)方式(insert into 、replace into解析)
- mysql使用insert into select插入查出的數(shù)據(jù)
- MySQL INSERT INTO SELECT時(shí)自增Id不連續(xù)問題及解決
- mysql插入數(shù)據(jù)INSERT INTO SET的優(yōu)勢(shì)
- 正確使用MySQL INSERT INTO語句
- 解析MySQL中INSERT INTO SELECT的使用
- MySQL 關(guān)于表復(fù)制 insert into 語法的詳細(xì)介紹
- MySQL中INSERT INTO的具體使用
相關(guān)文章
Mysql入門基礎(chǔ) 數(shù)據(jù)庫創(chuàng)建篇
Mysql入門基礎(chǔ) 數(shù)據(jù)庫創(chuàng)建篇,剛接觸php與mysql的朋友可以參考下。多寫多測試。2010-04-04
MySQL錯(cuò)誤:You can‘t specify target table&n
在編寫MySQL的UPDATE或DELETE語句時(shí),如果子查詢中直接引用了要操作的目標(biāo)表,可能會(huì)遇到一個(gè)常見的錯(cuò)誤:You can’t specify target table ‘xxx’ for update in FROM clause,這個(gè)錯(cuò)誤讓許多開發(fā)者感到困惑,本文將深入分析其原因,并提供多種解決方案,2025-02-02
SQL中where語句的用法及實(shí)例代碼(條件查詢)
WHERE如需有條件地從表中選取數(shù)據(jù),可將WHERE 子句添加到SELECT語句,下面這篇文章主要給大家介紹了關(guān)于SQL中where語句的用法及實(shí)例(條件查詢)的相關(guān)資料,需要的朋友可以參考下2022-10-10

