更新所有行并在其前添加文本

3
以下是我的表格:
create table tab (id INT, fullname varchar(100));

数据是

insert into tab values
(1,'Full Name 1'),
(2,'Full Name 2'),
(3,'Full Name 3'),
(4,'Full Name 4'),
(5,'Full Name 5'),
(6,'Full Name 6');

我希望更新表格,将fullname更新为My Full Name is + actualfullname。例如,id为1的数据应该是My Full Name is Full Name 1

有什么办法可以在一个查询中完成吗?

使用下面的查询,它将执行n次,因为我有很多记录。

UPDATE tab SET fullname='My Full Name is Full Name 1';

sqlfiddle

4个回答

7

使用CONCAT函数。

UPDATE tab 
SET fullname = CONCAT('My Full Name is ', fullname)

SQLFiddle Demo


1
还有7分钟就要接受答案了.. 我讨厌SO的这个功能 - Fahim Parkar
@FahimParkar 嘿嘿,慢慢来:D - John Woo

3
您可以使用MySQL的CONCAT()函数:
UPDATE tab SET fullname = CONCAT('My Full Name is ', fullname);

但是这个操作真的应该放在数据库里吗?听起来像是通常在应用程序的展示层执行的操作。


2

参考 CONCAT 函数

UPDATE tab SET fullname=CONCAT('My Full Name is ',fullname);

1
UPDATE tab SET fullname = CONCAT('My Full Name is ' , fullname)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接