137

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

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

4

5 回答 5

282

您可以使用CONCAT函数来执行此操作:

UPDATE tbl SET col=CONCAT('test',col);

如果您想变得更聪明并且只更新尚未预先测试的列,请尝试

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';
于 2009-03-25T09:18:37.317 回答
16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]
于 2009-03-25T09:18:43.213 回答
9

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

例如:

update table set field='' where field is null;
update table set field=concat(field,' append');
于 2013-06-06T06:40:12.273 回答
7

这是一个简单的

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
于 2009-03-25T09:18:02.730 回答
1
  • UPDATE table_name SET Column1 = CONCAT('newtring', table_name.Column1) 其中 1
  • UPDATE table_name SET Column1 = CONCAT('newtring', table_name.Column2) 其中 1
  • UPDATE table_name SET Column1 = CONCAT('newtring', table_name.Column2, 'newtring2') 其中 1

我们可以连接同一列或表的其他列。

于 2014-03-14T12:41:40.697 回答