3

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

<?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);
?>

所以基本上,我想在当前数据库条目中附加一个包含逗号的“新”字符串。但由于 CONCAT 函数使用逗号,我遇到了麻烦..

任何人有任何提示来实现这一点?

谢谢大家!

4

4 回答 4

5

更改此行

 $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'";
于 2012-03-31T06:05:08.093 回答
3

使用功能 mysql CONCAT_WS()-> Concatenate With Separator

UPDATE TABLE_NAME SET FIELD_NAME = CONCAT_WS(",",FIELD_NAME,FIELD_NAME2) WHERE CONDITON
于 2012-03-31T06:19:49.957 回答
2

SQL 查询中的字符串必须用引号分隔。

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

破坏PHP字符串也没有意义,只会增加无用的噪音。

另外,我闻到了数据库规范化的案例

于 2012-03-31T06:05:02.447 回答
0

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

$insert = "UPDATE TABLE SET FIELD = CONCAT('" . $old . "', '" . $new . "') WHERE something = 'something'";
于 2012-03-31T06:02:57.283 回答