1

複数のテーブルとフィールドで特定のテキスト文字列を置き換えようとしています。1 つのテーブルの 1 つのフィールドに対してそれを行うコードがありますが、同じ作業を繰り返したくありません (置き換えたい文字列がたくさんあるため)。

1 つのテーブルの 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 フィールドの両方のテキストを置き換えるコマンドを作成するにはどうすればよいですか?

(とにかく phpMyAdmin は UPDATE の結果を表示しないので、WHERE または ORDER が必要ですか?)

4

1 に答える 1

2

1 つのステートメントで複数のテーブルを更新することはできませんが、atransactionを使用して、2 つの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 に答える