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