mysql - 数据库更新查询?

标签 mysql sql database stored-procedures oracle10g

假设一个表是这样的

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 操作限制为仅包含 boy 字符串的记录。在这种特殊情况下,它可能是多余的。但一般来说,添加 WHERE 子句可以避免在不打算更改的情况下修改记录,从而节省时间。另外,一般来说(虽然不是在这里),当 where 列有索引时,WHERE 子句甚至可以加快更新速度。

关于mysql - 数据库更新查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049968/

相关文章:

sql - 通过SQL更改Magento中的订单状态

database - 如何在触发器函数中将 OLD、NEW 和标识符传递给 EXECUTE?

mysql - 使用时间间隔为每个外键选择最高值

mysql - 跟踪数据访问

php - 为每个 K2 项目选择所有类别

php - 我如何执行此 SQL 查询?

mysql - 如何在 MySQL 中查询以下内容?

php - 进行附近搜索的最佳方法是什么? (PHP & MySQL)

mysql - 如何使用 2 个表和外键进行 mysql 查询

php - unicode 和 utf8 数据从数据库读取到 php/html