在MySQL中如何将字符串前置到列值?

在MySQL中如何将字符串前置到列值?,mysql,sql-update,Mysql,Sql Update,我需要一个SQL update语句来更新所有行的特定字段,并在现有值的前面添加一个字符串“test” 例如,如果现有值为“try”,则应为“testtry”。这是一个简单的值 UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn); 您可以使用该功能执行以下操作: UPDATE tbl SET col=CONCAT('test',col); 如果您想变得更聪明,并且只更新尚未预先设置测试的列,请尝试 UP

我需要一个SQL update语句来更新所有行的特定字段,并在现有值的前面添加一个字符串“test”

例如,如果现有值为“try”,则应为“testtry”。

这是一个简单的值

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
您可以使用该功能执行以下操作:

UPDATE tbl SET col=CONCAT('test',col);
如果您想变得更聪明,并且只更新尚未预先设置测试的列,请尝试

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';

MySQL中的许多字符串更新函数似乎是这样工作的: 如果一个参数为
null
,则连接或其他函数也返回
null
。 因此,要使用
null
值更新字段,首先将其设置为非null值,例如
'

例如:

update table set field='' where field is null;
update table set field=concat(field,' append');
  • 更新table_name SET Column1=CONCAT('newtring',table_name.Column1),其中1
  • 更新表\u name SET Column1=CONCAT('newtring',表\u name.Column2),其中1
  • 更新表\u name SET Column1=CONCAT('newtring',表\u name.Column2',newtring2'),其中1

我们可以将同一列或表中的其他列合并。

更正到WHERE子句,其中只将test合并到已经以test开头的列。所以:foo->foo-footest->footest-testfoo->testtesttestfoooupdate票证设置状态\u-details=CONCAT(状态\u-details,'abc'),其中票证id=75108;错误1583(42000):调用本机函数“CONCAT”时参数不正确
update table set field='' where field is null;
update table set field=concat(field,' append');