我正在尝试替换多个表和字段中的特定文本字符串。我有一个表中的一个字段的代码,但我不想重复我的努力(因为我有许多字符串,我想替换)。
这是我在一个表中的一个字段的代码:
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的结果?)
答案 0 :(得分:2)
您无法在一个语句中更新多个表,但是,您可以使用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