数据库更新查询?
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', '');
假设一个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', '');