如何在 MySQL 中将字符串预置为列值?

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

例如,如果现有的值是“ try”,那么它应该变成“ testtry”。

167963 次浏览

很简单

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%';
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]

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

例如:

update table set field='' where field is null;
update table set field=concat(field,' append');
  • 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

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