数据库更新查询?

database update query?

假设一个table是这样的

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

现在我的要求是,只要发现连续出现“我是男孩”这句话,就将其删除,但其余部分保持原样。如果没有该短语,则不会有任何变化。所以对于上面的 table 查询后它会是这样的

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 子句甚至可以加快更新速度。

首先,最好将列名称 Desc 更改为其他名称,因为它是 保留关键字 。看看 this

以下查询可以解决您的问题。我已将此处的列名称更改为 Dsc.

UPDATE mytable
SET Dsc = REPLACE(Dsc, 'I am a boy', '');

SQLFiddle