2017-05-05 23 views
1

我的MySQL查詢如下:與條件唯一約束多重插入Laravel MySQL查詢(使用查詢生成器)

INSERT INTO mytable (col1 ,col2) 
      VALUES (val11 ,val12),(val21 ,val22),(val31 ,val32) 
      ON DUPLICATE KEY UPDATE col3=VALUES(col3); 

普通多重插入我能做到。

但是如何添加這個條件(ON DUPLICATE KEY UPDATE col3 = VALUES(col3))?

我該如何在LARAVEL中編寫這段代碼。我是Laravel的新人,所以請以某種方式展示。

更新:

爲什麼我的問題有所不同?因爲我想在查詢生成器中編碼。

+0

http://stackoverflow.com/questions/38308555/on-duplicate-key-update-in - 偶爾 – linktoahref

+2

可能重複的[在雄辯中的重複密鑰更新](http://stackoverflow.com/questions/38308555/on-duplicate-key-update-in-eloquent) – Cyril

+0

對不起,我忘了提及,我需要做它在查詢生成器中。感謝您的快速回復。 – subhajit

回答

1

對於查詢生成器,這將是updateOrInsert

DB::table('mytable')->updateOrInsert(
    ['col3' => 'col3'], 
    ['col1' => 'val11', 'col2' => 'val12'] 
); 
+0

我有數據到插入在多維陣列是這樣的: [ 0 => [ 「COL1」=> 「VAl11難」 「COL2」=> 「val12」 ] 1 => [ 「COL1」 =>「val21」 「col2」=>「val22」 ] ] 如何傳遞此數據? – subhajit

+0

你可以在函數中嘗試'array_values(你的數組)' – linktoahref

1

使用updateOrCreate ..

$sample= App\SampleModel::updateOrCreate(['col3'=>'val3'],['col1' => 'val1', 'col2' => 'val2']);