Not with a single SQL query, I don't think that possible... but, bring some PHP into the equation, and it's perfectly possible, without pretty much lifting a finger.
I will be wanting to do somthing very similar soon myself, so I thought now about right to try to right a script for the job.
I haven't actually tested this script on a database yet, but i've tested the script out pretty much... just not with a connection to a database.
Try it out, but have a database backup before... you MUST backup your database FIRST.
Anyway, this is the general idea :
PHP Code:
<?php
require('./global.php');
$oldDomainName = "www.old_domain.com";
$newDomainName = "www.new_domain.com";
$getPosts = $DB_site->query("SELECT postid,pagetext FROM post ORDER BY postid ASC");
$num_rows = $DB_site->num_rows($getPosts);
echo "$num_rows Posts Retrieved...";
$rows_updated = 0;
if (!$num_rows <=0) {
while ($row = $DB_site->fetch_array($getPosts, MYSQL_ASSOC)) {
if (preg_match ("/$oldDomainName/i", $row[pagetext])) {
$newPageText = preg_replace ("'$oldDomainName'i", $newDomainName, $row[pagetext]);
$DB_site->query("UPDATE post SET pagetext='" . addslashes($newPageText) . "' WHERE postid=$row[postid]");
$rows_updated++;
}
}
echo "$rows_updated Posts Updated";
} else {
echo "No Posts Found In Table";
}
$DB_site->free_result($getPosts);
?>
... substitute the $oldDomainName with your old domain name, and the same with $newDomainName, with your new domain name.
Exectute the script from within your FORUMS root, and just wait for it to end, and the changes should have happend.
I would recommend trying this on a "non-live" server first... like, if you have a copy of your forums on your computer (intranet).
Let me know.