1

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

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

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 无论如何都不会显示 UPDATE 的结果?)

4

1 回答 1

2

您不能在一个语句中更新多个表,但是,您可以使用 atransaction来确保将两个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
于 2012-05-20T21:30:19.923 回答