2010-03-03 90 views
4

我想通過在舊版本中添加新值來更新列。因此,如果列「水果」具有「蘋果」的價值,我運行我的查詢,它應該有「蘋果,橙子」的價值。如何更新數據庫記錄並仍然保留MySQL中的舊值?

現在當我做一個更新語句」

UPDATE tableName SET fruits='oranges' WHERE id=1; 

它只是覆蓋橘子的蘋果。我怎樣才能得到它添加新的值旁邊的老用逗號隔開?

+4

這實在不是一個感傷d架構。你可能會遇到問題,在道路上查詢這些價值。你應該解釋你打算如何使用這些數據。根據你想要的,結點表可能是更好的解決方案。 –

+0

只是學習SQL和建立一個基本的博客,所以可擴展性不是問題。 – Lusaunt

回答

5
UPDATE tableName SET fruits=CONCAT(fruits, ', oranges') WHERE id=1; 

或:

UPDATE tableName SET fruits=CONCAT_WS(', ', fruits, 'oranges') WHERE id=1; 
+0

如果'fruits'爲空,這將不會做他想做的事。 – SLaks

+0

確實如此,但聽起來好像帖子中已有值。 – ceejayoz

0
$reason_old = mysql_query("SELECT $col_name FROM `table` WHERE `unique_field` =$id"); 
$reason_fetch = mysql_fetch_array($reason_old); 
$reason_box = $reason_all[$reason_fetch ]; 

$anyvariable= "UPDATE `$table_name` SET `$col_name ` = '$new_data , $reason_box' WHERE `unique_field` =$id"; 
$yes_good = mysql_query($anyvariable, $conn); 
+0

你應該添加一些解釋。乍一看,它看起來像這個答案根本沒有解決這個問題。 –

+0

感謝您的編輯..這只是文字設計更改不代碼。 –

相關問題