Както вече споменаха други, не можете да направите това в MySQL. Това обаче изглежда е еднократна операция, която трябва да направите, така че ви написах бърз и мръсен малък php скрипт, за да свършите работата. Предполага се, че вашата таблица node_revisions има колона с първичен ключ, наречена "id". Ако не, редактирайте по подходящ начин. Също така, не забравяйте да промените хоста на базата данни, потребителското име, паролата и името на базата данни в горната част на скрипта, за да съответстват на вашата конфигурация.
<?php
$host = '127.0.0.1';
$username = 'root';
$password = 'password';
$database = 'test';
$conn = mysql_connect($host, $username, $password);
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
if (!mysql_select_db($database)) {
echo "Unable to select " . $database . ": " . mysql_error();
exit;
}
$sql = "SELECT * FROM node_revisions";
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
while ($row = mysql_fetch_assoc($result)) {
$id = $row['id'];
$body = $row['body'];
$teaser = $row['teaser'];
$body = preg_replace('/http:\/\/.*?\.pdf/', '/migration-update', $body);
$teaser = preg_replace('/http:\/\/.*?\.pdf/', '/migration-update', $teaser);
$sql = "UPDATE node_revisions set body='" . mysql_real_escape_string($body) . "', teaser='" . mysql_real_escape_string($teaser) . "' where id=" . $id;
mysql_query($sql);
}
mysql_free_result($result);
mysql_close($conn);
?>
Имайте предвид също, че използвах модификатор без алчност за регулярните изрази, така че ако имате няколко pdf URL адреса в полето за тяло или тийзър, няма да загубите всичко между тях.