有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為唯一鍵或者主鍵