2013-07-16 90 views

回答

1

你没有提到的数据库,所以我会回答为SQL Server 。它碰巧有一个名为stuff()的功能,在这种情况下确实有帮助。以下是代码:

with t as (select 'My car is black' as col) 
select STUFF(col, charindex('My', col) + LEN('My') + 1, 0, 'new ') 
from t; 

您可以通过提取字符串的片段来做其他数据库中的等效项。但是,字符串函数在数据库之间会有所不同,因此没有可用于所有(甚至几乎所有)数据库的表单。

编辑:

根据您的描述,我认为下面也许是你真正想要的:

select replace(col, 'sticker', 'sticker SHOCK') 
from t; 

这在大多数数据库。你也可以做这个更新:

update t 
    set col = replace(col, 'sticker', 'sticker SHOCK') 
    where col like '%sticker%'; 
+0

+1甚至没有想过使用'STUFF'。但是,我有一种感觉,这个问题可能是MySQL。 – Kermit

+0

嗨,其实我想在opencart(在phpmyadmin-sql)中修改产品名称,它有所不同,我有一个名为'product_description'的'product_description'列。每个名字都以“贴纸”开头,在这个单词之后我想添加另一个名字。如果另一个名为'custom_title'的列将包含一个短语,那么还有一个条件。谢谢:) –

+0

是的,它的工作。非常感谢你! –

0

您需要将短语的左侧和右侧连接到要插入的新单词。根据DBMS,您可以使用各种功能来确定左侧和右侧部分。

在SQL Server中,你可以这样做:

UPDATE tbl SET phrase = LEFT(phrase, 3) + 'new ' + RIGHT(phrase, 12); 

将产生

|    PHRASE | 
----------------------- 
| My new car is black |

Demo