@henrik: Agreed, I've done a lot of SQL updates at my previous job. It isn't that hard to do, but it is scary since you are directly working in the source Neo. Typically you can do something like this (I don't have a lot of experience with mysql, only with MSSQL, but it shouldn't differ a lot)
Code: Select all
BEGIN TRANSACTION
#find all the posts in which an old URL is used and display their ID's and content
SELECT post_id, content_field FROM post WHERE content_field LIKE '%topic.php?id=%'
#update the old URLS to the new ones
UPDATE post
SET content = REPLACE(content_field,'topic.php?id=','viewtopic.php?t=')
WHERE content_field LIKE '%topic.php?id=%'
#find all the posts in which an old URL is used and display their ID's and content
# this should return zero results, since we replaced all old URLS with new URLS.
SELECT post_id, content_field FROM post WHERE content_field LIKE '%topic.php?id=%'
# rollback all our work because we are scared to wreck things.
# if we want make these updates permanent, we use COMMIT instead of ROLLBACK
ROLLBACK
Alternatively, you could write a query to update a single post and see how that goes. If you are satisfied with the result (i.e. the site didn't blow up), you can do it for all posts.
Or you could do a wordpress dump, search replace through the dump and reupload it (not sure how this works exactly).
Or you could do nothing, since I don't now how big of a problem it is right now.