在CONCAT php mysql更新中使用逗号

时间:2012-03-31 05:59:30

标签: php mysql concat comma

我必须执行类似于以下的查询:

<?php
//....connect to database
$old = "a,b,c,d";
$new = "e,f,g,h";

$insert = "UPDATE TABLE SET FIELD = CONCAT(" . $old . ", " . $new . ") WHERE something = 'something';
mysql_query($insert);
?>

基本上,我想用当前包含逗号的'new'字符串附加当前数据库条目。但由于CONCAT功能使用逗号,我遇到了麻烦..

任何人都有任何提示可以实现这一目标吗?

谢谢大家!

4 个答案:

答案 0 :(得分:4)

更改此行

 $insert = "UPDATE TABLE SET FIELD = CONCAT(" . $old . ", " . $new . ") WHERE something = 'something'";

到这个

$insert = "UPDATE TABLE SET FIELD = CONCAT('$old', '$new') WHERE something = 'something'";

编辑:

如果您想要连接的$old$new字符串之间使用逗号,请使用CONCAT_WS(http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws

像这样:

 $insert = "UPDATE TABLE SET FIELD = CONCAT_WS(',', '$old', '$new') WHERE something = 'something'";

答案 1 :(得分:3)

使用函数mysql CONCAT_WS() - &gt;与分隔符连接

UPDATE TABLE_NAME SET FIELD_NAME = CONCAT_WS(",",FIELD_NAME,FIELD_NAME2) WHERE CONDITON

答案 2 :(得分:2)

SQL查询中的

字符串必须用引号分隔。

$insert = "UPDATE TABLE SET FIELD = CONCAT(FIELD,',','$new') WHERE ...";

打破PHP字符串也没有意义,只添加无用的噪音。

另外,我闻到了database normalization

的案例

答案 3 :(得分:0)

你需要在变量周围添加引号,以便获得字符串,就像这样(我还添加了一个尾随双引号):

$insert = "UPDATE TABLE SET FIELD = CONCAT('" . $old . "', '" . $new . "') WHERE something = 'something'";