如何在MySQL中将字符串附加到现有字段?


101

我想将所有记录上的代码更新为当前的代码,再加上_standard任何想法?

因此,例如,如果代码是apple_1和apple_2,则我需要将它们设置为apple_1_standard和apple_2_standard

之前:

id   code
------------
1    apple_1 
1    apple_2

伪查询:

update categories set code = code + "_standard" where id = 1;

预期结果:

id   code
----------------------
1    apple_1_standard 
1    apple_2_standard

Answers:


224

您需要CONCAT()在MySQL中使用该函数进行字符串连接:

UPDATE categories SET code = CONCAT(code, '_standard') WHERE id = 1;

60
以防万一有人遇到与我相同的问题:如果code默认情况下该字段为NULL,则需要使用:UPDATE categories SET code = CONCAT(IFNULL(code,''), '_standard') WHERE id = 1;否则concat将始终导致NULL。
Kai Noack

3
或者,您可以使用CONCAT_WS跳过NULL值。例如,SELECT CONCAT_WS(', ','First name',NULL,'Last Name'); 给出“名,姓”
BarneySchmale,2016年

@Daniel如何根据以上评论更新答案?
kiedysktos

特殊/单独的问题(可能为空):stackoverflow.com/questions/14020867/…–
qdinar

0

更新图片字段以添加完整URL,忽略空字段:

UPDATE test SET image = CONCAT('https://my-site.com/images/',image) WHERE image IS NOT NULL;
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.