假设一张桌子是这样的
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
子句甚至可以加快更新速度。