mysql 資料不存在就插入 否則就更新資料

來源:互聯網
上載者:User

有2種方法:

 代碼如下 複製代碼

insert ignore into {$this->getTable(‘core_config_data’)} (scope,scope_id,path,value) values (‘default’,0,’dev/debug/template_hints’,0);

註:如果使用的是insert into 發現重複的會報錯,而insert ignore into 發現將要插入的資料行中包含唯一索引的欄位值已存在,會丟棄掉這行資料,不做任何處理

 代碼如下 複製代碼

replace into {$this->getTable(‘core_config_data’)}(scope,scope_id,path,value) values(‘default’,0,’dev/debug/template_hints’,0);

註:REPLACE發現重複的先刪除再插入,如果記錄有多個欄位,在插入的時候如果有的欄位沒有賦值,那麼新插入的記錄這些欄位為空白,所以為了更好的解決這個問題,我們可以進入一些操作

 代碼如下 複製代碼

/如果不存在,則插入新資料
$sql = “INSERT INTO {$ecs->table(‘cat_lang’)} (cat_id,lang_id,cat_name,keywords,cat_desc)
VALUES({$cat_id},{$k},’{$val['cat_name']}’,'{$val['keywords']}’,'{$val['cat_desc']}’)
ON DUPLICATE KEY UPDATE cat_name=’{$val['cat_name']}’,cat_desc=’{$val['cat_desc']}’,keywords=’{$val['cat_desc']}’”;

這裡要注意的是:必須表主鍵唯一 。這裡,這裡我採用的是 分類id和語言id雙主鍵機制。

具體sql如:

 代碼如下 複製代碼

INSERT INTO TABLE (a,b,c)
VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
UPDATE TABLE SET c=c+1 WHERE a=1;

key為唯一鍵或者主鍵

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.