MYSQL更新并向单元格中添加值

时间:2013-07-29 02:58:01

标签: php mysql

你好朋友我想更新表格中的单元格,但要保留新内容。我需要添加新数据分隔的白色逗号或换行符(不相关),保留内部数据。

|id | title | referer|
|--------------------|
| 1 | post1 | google |
| 2 | post2 | yahoo  |
| 3 | post3 | bing   |
| 4 | post4 | google |

如果添加了新内容,表格应如下所示。

|id | title | referer           |
|-------------------------------|
| 1 | post1 | google,yahoo,bing |
| 2 | post2 | yahoo,bing,etc    |
| 3 | post3 | bing              |
| 4 | post4 | google,google     |

这是我在我的数据库中插入新行的代码:

mysql_query("INSERT IGNORE INTO posts (id,title,referer) VALUES (null,'$q','$referer')");

在单元格“referer”whit逗号分隔或换行符中添加信息的代码是什么?

提前致谢

5 个答案:

答案 0 :(得分:1)

我不确定你如何用逗号分隔它们,除非你想要创建一个变量数组并将它们concat分成一个变量并使用mysql's CONCAT函数更新你的表,以保留您的最后一个字段数据:

$referes_list = '';
foreach ($referers as $referer) {
    $referes_list .= $referer . ", ";
} 
UPDATE referers SET referer=CONCAT(referer,'$referes_list') WHERE id='$id' ;

答案 1 :(得分:0)

如果我的MySQL技能不是最好的,你将不得不原谅我,但我在这里做的只是获取当前值,为它添加一个逗号和新值,然后更新单元格。

......或者我误解了你的问题?

答案 2 :(得分:0)

在mysql中没有“逗号分隔类型”,这只是一个简单的字符串或VARCHAR,因此,您需要获取以前的数据并将其连接到php中的字符串然后更新它。

答案 3 :(得分:0)

我认为你正在寻找类似的东西:

update t
    set referrer = (case when referer is null or referer = ''
                         then @newvalue
                         else concat(referer, ',', @newvalue)
                    end)
    where id = @id;

答案 4 :(得分:0)

mysql_query('UPDATE tablename SET referer = concat(referer,", '.$value.'") where id="'.$id.'")'; 这应该这样做,但它未经测试。