假设一张桌子是这样的

ID            Desc
1          I am a boy
2          I am a boy xyz
3          I am a boy abc
4          xyzab I am a boy
5          life is beautiful
6          blank


现在,我的要求是,只要连续发现短语“我是男孩”都会将其删除,但其余部分将保持原样。如果没有该短语,则不会有任何变化。因此对于查询后的上表,它看起来像这样

ID          Desc
1          <blank>
2           xyz
3           abc
4          xyzab
5         life is beautiful
6          blank

最佳答案

您可以尝试以下替换。请注意,我包装了替换的描述列,以删除短语I am a boy中所有剩余的空格。

UPDATE yourTable
SET Desc = TRIM(REPLACE(Desc, 'I am a boy', ''))
WHERE Desc LIKE '%I am a boy%'


WHERE子句将UPDATE操作限制为仅包含男孩字符串的那些记录。在这种特殊情况下,它可能是多余的。但是总的来说,添加WHERE子句可以避免不必要的修改记录,从而节省时间。同样,通常(尽管不在此处),当where列具有索引时,WHERE子句甚至可以加快更新速度。

10-07 13:20