Search all tables, all columns for a specific value SQL Server

July 9, 2021 . 1 MIN READ

All commands are bash on Linux, from memory.

Dump database to text file

mysqldump -u user -p databasename > ./db.sql

Run sed command to find/replace target string

sed -i ‘s/oldString/newString/g’ ./db.sql

Reload the database into MySQL

mysql -u user -p databasename < ./db.sql

Easy peasy.

Put this in a php file and run it and it should do what you want it to do.

// Connect to your MySQL database.

$hostname = “localhost”;

$username = “db_username”;

$password = “db_password”;

$database = “db_name”;

 

mysql_connect($hostname, $username, $password);

 

// The find and replace strings.

$find = “find_this_text”;

$replace = “replace_with_this_text”;

 

$loop = mysql_query(”

SELECT

concat(‘UPDATE ‘,table_schema,’.’,table_name, ‘ SET ‘,column_name, ‘=replace(‘,column_name,’, ”{$find}”, ”{$replace}”);’) AS s

FROM

information_schema.columns

WHERE

table_schema = ‘{$database}'”)

or die (‘Cant loop through dbfields: ‘ . mysql_error());

 

while ($query = mysql_fetch_assoc($loop))

{

mysql_query($query[‘s’]);

}

http://stackoverflow.com/questions/11839060/find-and-replace-text-in-all-table-using-mysql-query

Leave a Reply

Your email address will not be published. Required fields are marked *