你好朋友我想更新表格中的单元格,但要保留新内容。我需要添加新数据分隔的白色逗号或换行符(不相关),保留内部数据。
|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逗号分隔或换行符中添加信息的代码是什么?
提前致谢
答案 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.'")';
这应该这样做,但它未经测试。