我需要使用另一列(比如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部分需要帮助。
答案 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的第一个参数是你要连接的字符串字符。