0

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

|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”中添加信息的代码是什么?

提前致谢

4

5 回答 5

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' ;
于 2013-07-29T03:10:43.337 回答
0

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

于 2013-07-29T03:13:09.613 回答
0

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

于 2013-07-29T03:07:57.717 回答
0

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

update t
    set referrer = (case when referer is null or referer = ''
                         then @newvalue
                         else concat(referer, ',', @newvalue)
                    end)
    where id = @id;
于 2013-07-29T03:08:02.100 回答
0

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

...还是我误解了你的问题?

于 2013-07-29T03:04:38.563 回答