Я пытаюсь заменить определенные текстовые строки в нескольких таблицах и полях. У меня есть код для одного поля в одной таблице, но я не хочу дублировать свои усилия (поскольку у меня есть много строк, которые я бы хотел заменить).Заменить текст в нескольких таблицах и полях в MySQL
Вот мой код для одного поля в одной таблице:
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 ли?)
Вам не нужно предложение 'ORDER BY', но я не уверен, почему вам не нужно использовать предложение WHERE из-за phpMyAdmin. Запросы 'UPDATE' без предложения WHERE' влияют на * все * строки в таблице, поэтому они, как правило, плохая идея. В этом конкретном случае это может не иметь большого значения, потому что MySQL будет использовать функцию 'replace' для поиска' string-to-be-replace 'и заменять это только в любых соответствующих строках. Но, как правило, предложение WHERE является самой важной вещью запроса 'UPDATE'. Вы не хотите, чтобы все пароли пользователей были изменены, потому что один пользователь изменил свой пароль. – Daan