最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql ON DUPLICATE KEY UPDATE語句示例

 更新時(shí)間:2013年11月05日 15:19:05   作者:  
本文介紹一下關(guān)于mysql中INSERT INTO… ON DUPLICATE KEY UPDATE用法
MySQL 自4.1版以后開始支持INSERT … ON DUPLICATE KEY UPDATE語法,使得原本需要執(zhí)行3條SQL語句(SELECT,INSERT,UPDATE),縮減為1條語句即可完成。
例如ipstats表結(jié)構(gòu)如下:
復(fù)制代碼 代碼如下:

CREATE TABLE ipstats (
ip VARCHAR(15) NOT NULL UNIQUE,
clicks SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'
);
 

原本需要執(zhí)行3條SQL語句,如下:
復(fù)制代碼 代碼如下:

IF (SELECT * FROM ipstats WHERE ip='192.168.0.1') {
    UPDATE ipstats SET clicks=clicks+1 WHERE ip='192.168.0.1';
} else {
    INSERT INTO ipstats (ip, clicks) VALUES ('192.168.0.1', 1);
}
 

而現(xiàn)在只需下面1條SQL語句即可完成:
復(fù)制代碼 代碼如下:

INSERT INTO ipstats VALUES('192.168.0.1', 1) ON DUPLICATE KEY UPDATE clicks=clicks+1;
 

注意,要使用這條語句,前提條件是這個(gè)表必須有一個(gè)唯一索引或主鍵。
 總結(jié)如下:
1.如果表中不存在主鍵記錄,replace和insert*update都與insert是一樣的特點(diǎn)。
2.如 果表中存在主鍵記錄,replace相當(dāng)于執(zhí)行delete 和 insert兩條操作,而insert*update的相當(dāng)于執(zhí)行if exist do update else do insert操作。因此,如果replace填充的字段不全,則會(huì)導(dǎo)致未被更新的字段都會(huì)修改為默認(rèn)值,并且如果有自增id的話,自增id會(huì)變化為最新的 值(這樣如果是以自增id為標(biāo)志的話可能導(dǎo)致記錄丟失);而insert*update只是更新部分字段,對(duì)于未被更新的字段不會(huì)變化(不會(huì)強(qiáng)制修改為默 認(rèn)值)。
 多條記錄操作:
復(fù)制代碼 代碼如下:

insert into t(a,b,c) values ('a1','b1','c1'),('a2','b2','c2')
on duplicate key update t.c=values(t.c)

相關(guān)文章

  • MYSQL 關(guān)于兩個(gè)經(jīng)緯度之間的距離由近及遠(yuǎn)排序

    MYSQL 關(guān)于兩個(gè)經(jīng)緯度之間的距離由近及遠(yuǎn)排序

    本篇文章是對(duì)MYSQL中關(guān)于兩個(gè)經(jīng)緯度之間的距離由近及遠(yuǎn)排序的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • MYSQL查詢時(shí)間范圍內(nèi)的數(shù)據(jù)示例代碼

    MYSQL查詢時(shí)間范圍內(nèi)的數(shù)據(jù)示例代碼

    這篇文章主要介紹了MYSQL查詢時(shí)間范圍內(nèi)的數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • MySQL5.5版本安裝與安裝失敗詳細(xì)講解

    MySQL5.5版本安裝與安裝失敗詳細(xì)講解

    MySQL是一款安全、跨平臺(tái)、高效的,并與PHP、Java等主流編程語言緊密結(jié)合的數(shù)據(jù)庫系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于MySQL5.5版本安裝與安裝失敗詳細(xì)講解的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Navicat自動(dòng)備份MySQL數(shù)據(jù)的流程步驟

    Navicat自動(dòng)備份MySQL數(shù)據(jù)的流程步驟

    對(duì)于從事IT開發(fā)的工程師,數(shù)據(jù)備份我想大家并不陌生,這件工程太重要了!對(duì)于比較重要的數(shù)據(jù),我們希望能定期備份,每天備份1次或多次,或者是每周備份1次或多次,所以本文給大家介紹了Navicat自動(dòng)備份MySQL數(shù)據(jù)的流程步驟,需要的朋友可以參考下
    2024-12-12
  • lnmp下如何關(guān)閉Mysql日志保護(hù)磁盤空間

    lnmp下如何關(guān)閉Mysql日志保護(hù)磁盤空間

    這篇文章主要介紹了lnmp下如何關(guān)閉Mysql日志保護(hù)磁盤空間的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • 為MySQL中的JSON字段設(shè)置索引的兩種方法

    為MySQL中的JSON字段設(shè)置索引的兩種方法

    MySQL在2015年中發(fā)布的5.7.8版本中首次引入了JSON數(shù)據(jù)類型,自此,它成了一種逃離嚴(yán)格列定義的方式,可以存儲(chǔ)各種形狀和大小的JSON文檔,雖然MySQL提供了讀寫JSON數(shù)據(jù)的函數(shù),但JSON缺失了索引功能,本文介紹了如何為MySQL中的JSON字段設(shè)置索引,需要的朋友可以參考下
    2025-09-09
  • MySQL ClickHouse常用表引擎超詳細(xì)講解

    MySQL ClickHouse常用表引擎超詳細(xì)講解

    這篇文章主要介紹了MySQL ClickHouse常用表引擎,ClickHouse表引擎中,CollapsingMergeTree和VersionedCollapsingMergeTree都能通過標(biāo)記位按規(guī)則折疊數(shù)據(jù),從而達(dá)到更新和刪除的效果
    2022-11-11
  • 一文搞懂mysql如何處理json格式的字段(解析json數(shù)據(jù))

    一文搞懂mysql如何處理json格式的字段(解析json數(shù)據(jù))

    這篇文章主要給大家介紹了關(guān)于mysql如何處理json格式的字段的相關(guān)資料,MySQL中的JSON類型是一種數(shù)據(jù)類型,用于存儲(chǔ)和處理JSON(JavaScript Object Notation)格式的數(shù)據(jù),需要的朋友可以參考下
    2023-12-12
  • MySQL數(shù)據(jù)庫終端—常用操作指令代碼

    MySQL數(shù)據(jù)庫終端—常用操作指令代碼

    這篇文章主要介紹了MySQL數(shù)據(jù)庫終端—常用操作指令代碼,添加用戶、更改用戶名和host主機(jī)、更改密碼、刪除用戶等等,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-01-01
  • MySQL 導(dǎo)出一條數(shù)據(jù)的插入語句(示例詳解)

    MySQL 導(dǎo)出一條數(shù)據(jù)的插入語句(示例詳解)

    在MySQL中,如果我們想要導(dǎo)出一條數(shù)據(jù)的插入語句,我們可以使用SELECT ... INTO OUTFILE語句,這篇文章主要介紹了MySQL 導(dǎo)出一條數(shù)據(jù)的插入語句,需要的朋友可以參考下
    2024-06-06

最新評(píng)論

榆林市| 宝山区| 临澧县| 磐石市| 怀集县| 荔波县| 八宿县| 大名县| 哈密市| 西平县| 聂拉木县| 滦南县| 谢通门县| 门源| 永济市| 惠东县| 青田县| 囊谦县| 旺苍县| 于都县| 兴宁市| 五大连池市| 政和县| 长宁区| 天祝| 西丰县| 繁昌县| 维西| 云和县| 清水县| 清徐县| 鄱阳县| 太原市| 延长县| 井研县| 绥德县| 东源县| 凤山市| 牙克石市| 和静县| 任丘市|