在CONCAT php-mysql更新中使用逗号


Using commas in a CONCAT php mysql update

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

<?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函数使用逗号,我遇到了麻烦。

有人有什么技巧可以做到这一点吗?

更改此行

 $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'";

使用函数mysql CONCAT_WS()->Concatenate With Separator

UPDATE TABLE_NAME SET FIELD_NAME = CONCAT_WS(",",FIELD_NAME,FIELD_NAME2) WHERE CONDITON
SQL查询中的

字符串必须用引号分隔。

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

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

此外,我还闻到了数据库规范化

的例子

您需要在变量周围添加引号,以便获得字符串,如下所示(我还添加了一个尾部双引号):

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