使用第二列和变量的concat更新列

时间:2012-02-16 13:30:44

标签: php mysql

我需要使用另一列(比如column1)连接两个字符串变量(比如str1和str2)来更新列值(比如column2)。我在column2中需要的最终值是str1作为前缀,str2作为column1值的后缀。

可以做的一种方法是使用虚拟第三列和总共4个更新查询。

update table set column3 = str1;
update table set column2 = concat(column3, column1);
update table set column3 = str2;
update table set column2 = concat(column2, column3);

但我想在不使用虚拟列的情况下将其减少为单个更新,如下所示 -

update table set column2 = concat($str1, column1, $str2);

我在上述查询的concat部分需要帮助。

3 个答案:

答案 0 :(得分:2)

没有理由不这样做:

$prefix = mysql_realescape_string($str1);
$suffix = mysql_realescape_string($str2);
$sql = "UPDATE table SET cloumn2 = CONCAT('$prefix', column1, '$suffix')";

答案 1 :(得分:0)

假设您使用的是PHP,那么您的解决方案就是:

$query="update table set column2 = concat('$str1', column1, '$str2');";

你实际上非常接近解决方案。

答案 2 :(得分:0)

尝试类似:

$sql = "UPDATE table SET column2 = CONCAT_WS('-', '$str1', column1, '$str2');";

CONCAT_WS的第一个参数是你要连接的字符串字符。