更新列的文本

时间:2012-10-20 14:41:40

标签: mysql sql sql-update edit

我创建了表格

create table tab (id int, mytext varchar(200));

现在我将值插入为

insert into tab values
(1, 'text 11,text 12,'),
(2, 'text 21,text 22,'),
(3, 'text 31,text 32,'),
(4, 'text 41,text 42,');

现在我想要做的是在文本的开头添加文本text none,。为此,我必须执行查询

update tab set mytext = concat('text none,', mytext)

然而,我错误地将查询执行为:

update tab set mytext = concat('text none', mytext)

我在'无'之后错过了COMMA(,)。

现在我有数据

1   textnonetext 11,text 12,
2   textnonetext 21,text 22,
3   textnonetext 31,text 32,
4   textnonetext 41,text 42,

我想要的是将输出改为:

1   textnone,text 11,text 12,
2   textnone,text 21,text 22,
3   textnone,text 31,text 32,
4   textnone,text 41,text 42,

即。在没有之后添加逗号(,)。

知道如何完成这项工作吗?

SQL Fiddle for testing

注意: mytext字段中原始数据的长度不固定;对于某些ID,它是6,有些是50。

2 个答案:

答案 0 :(得分:3)

试试这个,

update tab 
set mytext = concat('text none, ', Replace(mytext, 'text none',''));

SQLFiddle Demo

或者如果您没有任何特殊原因使用concat

,只需更换
update tab 
set mytext = Replace(mytext, 'text none','text none, ');

答案 1 :(得分:2)

或者只使用replace而不使用concat:

UPDATE tab
SET mytext = REPLACE(mytext, 'text none', 'text none,')
相关问题