2010-03-03 198 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

感谢您的编辑..这只是文字设计更改不代码。 –

相关问题