我想在SQL中插入一个新单词,其中包含另一个特定单词后面的文本,例如:我的文字“我的车是黑色的”,我想在My之后插入new,新文本应该是:我的新车是黑色的。
答案 0 :(得分: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%';
答案 1 :(得分:0)
您需要将短语的左右部分连接到要插入的新单词。根据DBMS,您可以使用各种功能来确定左右部分。
在SQL Server中,您可以执行以下操作:
UPDATE tbl SET phrase = LEFT(phrase, 3) + 'new ' + RIGHT(phrase, 12);
哪会产生
| PHRASE | ----------------------- | My new car is black |