如何在MySQL中的字符串值前添加字符串?


122

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

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

Answers:


260

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

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

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

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

16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]

更新票证设置status_details = CONCAT(status _details,'abc')其中ticket_id = 75108; 错误1583(42000):调用本地函数'CONCAT'时参数不正确
nirmesh khandelwal

8

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

例如:

update table set field='' where field is null;
update table set field=concat(field,' append');

6

那很简单

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);

请更正WHERE子句,在该子句中,您仅将test连接到已经以test开头的列。所以:foo-> foo footest-> footest testfoo-> testtestfoo
Jukka Dahlbom 09年

0
  • 更新table_name SET Column1 = CONCAT('newtring',table_name.Column1)其中1
  • 更新table_name SET Column1 = CONCAT('newtring',table_name.Column2)其中1
  • 更新table_name SET Column1 = CONCAT('newtring',table_name.Column2,'newtring2')其中1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.