mysql - 替换 MySQL 中多个表和字段中的文本

标签 mysql replace field

我正在尝试替换多个表格和字段中的特定文本字符串。我有代码可以为一张表中的一个字段执行此操作,但我不想重复我的工作(因为我有很多字符串想要替换)。

这是我在一个表中的一个字段的代码:

UPDATE `phpbb3`.`phpbb_posts`
SET `post_subject` = REPLACE(`post_subject`,'string-to-be-replaced','replacement-string')
WHERE ( `post_subject` LIKE '%string-to-be-replaced%' )
ORDER BY `phpbb_posts`.`post_time` DESC

如何编写命令来替换 phpbb_posts.post_subject 字段和 phpbb_topics.topic_title 字段中的文本?

(我是否需要 WHERE 或 ORDER,因为 phpMyAdmin 不显示更新的结果?)

最佳答案

您不能在一个语句中更新多个表,但是,您可以使用一个transaction 来确保两个UPDATE 语句一起处理。您还可以对它们进行批处理以避免往返。

BEGIN TRANSACTION
UPDATE phpbb_posts
SET post_subject = REPLACE(`post_subject`,'string-to-be-replaced','replacement-string')
WHERE ( `post_subject` LIKE '%string-to-be-replaced%' )
ORDER BY `phpbb_posts`.`post_time` DESC

UPDATE phpbb_topics
SET .topic_title = <something>
WHERE <column> = <something>

COMMIT

关于mysql - 替换 MySQL 中多个表和字段中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10677274/

相关文章:

MySQL:根据已选行中的值选择行

php - 图片库与数据库配合?

Python替换二维数组中的元素=键

SQL-'08 : Are multiple Replace statements a bad practice/is there another way to write this query?

c++ - scanf/字段长度 : using a variable/macro, C/C++

MySQL触发器 - 移动内部订单列

c# - 在 MySQL 数据库中存储 List<T> 数组

php - 仅在字符串末尾替换

java - java中不同的数据类型

javascript - 从包含中文和拉丁字符的电子邮件字段中检索原始值