Find and replace entire mysql database
sqldump to a text file, find/replace, re-import the sqldump.
Dump the database to a text filemysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
Restore the database after you have made changes to it.mysql -u root -p[root_password] [database_name] < dumpfilename.sql
This strongly implies that your data IS NOT NORMALISED to begin with.
Something like this should work (NB you've not mentioned of your using any other languages - so its written as a MySQL stored procedure)
create procedure replace_all(find varchar(255),
replce varchar(255),
indb varcv=char(255))
DECLARE loopdone INTEGER DEFAULT 0;
DECLARE currtable varchar(100);
DECLARE alltables CURSOR FOR SELECT t.tablename, c.column_name
FROM information_schema.tables t,
information_schema.columns c
WHERE t.table_schema=indb
AND c.table_schema=indb
AND t.table_name=c.table_name;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET loopdone = 1;
OPEN alltables;
tableloop: LOOP
FETCH alltables INTO currtable, currcol;
IF (loopdone>0) THEN LEAVE LOOP;
END IF;
SET stmt=CONCAT('UPDATE ',
indb, '.', currtable, ' SET ',
currcol, ' = word_sub(\'', find,
'\','\'', replce, '\') WHERE ',
currcol, ' LIKE \'%', find, '%\'');
PREPARE s1 FROM stmt;
EXECUTE s1;
DEALLOCATE PREPARE s1;
END LOOP;
END //
I'll leave it to you to work out how to declare the word_sub function.
Update old URL to new URL in WordPress MySQL Query:
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.example', 'http://newdomain.example') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.example','http://newdomain.example');
UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.example', 'http://newdomain.example');
UPDATE wp_posts SET post_excerpt = replace(post_excerpt, 'http://olddomain.example', 'http://newdomain.example');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.example', 'http://newdomain.example');
BE CAREFUL, when replacing with REPLACE command!
why?
because there is a great chance that your database contains serialized data (especially wp_options table), so using just "replace" might break data.
Use recommended serialization: https://puvox.software/tools/wordpress-migrator