2011-05-08 67 views
6

首先我喜歡這個MySQL - 將數據追加到現有字段/記錄的建議?

function events_exceptions($rec_id, $evt_id) 
{ 
//$evt_id = 1; 

$this->db->where('record_id', $rec_id); 
$this->db->update('events', array('exceptions' => $evt_id)); 
} 

將數據添加到表events,現場exceptions這會給我

exceptions 
1 

如果我$evt_id = 2再次運行此我會得到

exceptions 
2 

等。

我想實際追加新的數據到該領域,而不是更新的,所以我會(注意逗號)

exceptions 
1,2,3 //etc 

我認爲這是可以通過向DB打電話,讀來完成行/字段的內容,並通過PHP連接 - 然後更新記錄。但我想避免這種開銷。

有沒有辦法通過MySQL這樣做CONCAT

感謝您的幫助。

回答

15
$query = "UPDATE table1 SET field1 = CONCAT(ifnull(field1,''),'$extra') WHERE id = '$id'"; 
+0

謝謝 - 看起來像是有效的,但只有當數據已經存在於該字段中時 - 如果它是空的,語句什麼都不做 - 我們如何解決這個問題? – pepe 2011-05-08 04:37:40

+2

實際上,我現在切換到'CONCAT_WS(',',FIELD1,'$ extra')'現在它可以工作 - 謝謝! – pepe 2011-05-08 04:43:13

+0

感謝您的這段代碼。似乎是我正在尋找的東西。 – 2014-01-28 09:46:44

相關問題