Если встала необходимость заменить какой-либо текст в таблице MySQL, это можно сделать очень просто
1 Способ
UPDATE `table` SET `column` = REPLACE( column, 'search', 'replace' ); В этом коде заменяем table на название таблицы, column на название колонки, search — искомый текст, replace — текст, на который будем замещать.
Так же в запрос можно добавить какое-либо условие WHERE.
2 Способ
Сделать дамп базы, сделать реплейс любой программой, например внутренним редактором менеджера Far или Notepad++, а потом залить базу обратно… Для безопасно быстрого бэкапа и восстановления базы рекомендую использовать Sypex Dumper бесплатную версию.
И полный синтаксис команды REPLACE
REPLACE [LOW_PRIORITY | DELAYED] [INTO] tbl_name [(col_name,...)] VALUES (expression,...),(...),... или REPLACE [LOW_PRIORITY | DELAYED] [INTO] tbl_name [(col_name,...)] SELECT ... или REPLACE [LOW_PRIORITY | DELAYED] [INTO] tbl_name SET col_name=expression, col_name=expression,... Оператор REPLACE работает точно так же, как INSERT, за исключением того, что если старая запись в данной таблице имеет то же значение индекса UNIQUE или PRIMARY KEY, что и новая, то старая запись перед занесением новой будет удалена.
Другими словами, команда REPLACE не предоставляет доступа к замещаемой записи. В некоторых старых версиях MySQL такой доступ иногда оказывался возможным, но это был дефект, который уже исправлен.
Для использования REPLACE у вас должны быть привилегии INSERT и DELETE для таблицы.
При использовании команды REPLACE функция mysql_affected_rows() вернет значение, равное 2, если старая строка была заменена новой. Объясняется это тем, что в таблицу вставляется строка после того, как удаляется дубликат.
Это позволяет легко определять, какое действие произвела команда REPLACE — добавление или замещение строки. Достаточно просто проверить, какое число вернула функция mysql_affected_rows() — 1 (строка добавлена) или 2 (замещена).
Следует учитывать, что, если не используются индексы UNIQUE или PRIMARY KEY, то применение команды REPLACE не имеет смысла, так как она работает просто как INSERT.
Атлична! заменил 64 записи в таблице за один раз!!!
Спасибо!
Спасибо, пригодилось)
мне подошел первый способ. спасибо за статью. сразу заменило 4000300 строк
за 1 + и спасибо
Спасибо
Вы мне очень помогли, спасибо. Язык структурированных запросов на самом деле не сложный, но если не знаешь его вообще, и с чего начинать, то без вот такой помощи ну никак. Еще раз большое спасибо!!!!!!!!!!!!!!!!!!
Ще раз велике дякую, дуже допомогли, не запам’ятав код с першого разу, дуже багато інформації при створенні сайту потрібно переварити, а роблю все сам, від дизайну та HTML-весртки до РНР та MySQL обробки даних, тож ваша публікація досить таки актуальна, ще раз красно дякую!!!!
А как произвести удаление массовое определённого текста?
Второй способ! Отличная идея!
замена в базе с 5 миллионами записей, первый вариант работает отлично, правда нагрузка на хосте не маленькая скажу я вам
Полезная статья, спасибо, очень помогла в замене текста на массе страниц.
to Женя
В SQL не силён, но там по-моему отдельные команды для удаления таблиц и строк. Для таблиц вроде drop table, для отдельных записей delete from имя таблицы, дальше что писать уже не помню. В тоже время, никто не мешает использовать озвученные в этой статье методы, просто чем заменять оставить пустым, по идее, должно будет именно удалить нужные записи в базе, но это в теории, на практике не проверял, только замену текста попробовал, помогло.
Затронуто 1018067 строк. (Запрос занял 13.9876 сек.)
Благодарю вас, сэр!