📅  最后修改于: 2023-12-03 15:37:43.242000             🧑  作者: Mango
在MySQL中,想要在整个数据库中替换一个字符串,可使用以下步骤:
SHOW TABLES;
SET SESSION SQL_SAFE_UPDATES=0;
UPDATE table_name SET column_name = REPLACE(column_name, 'old_string', 'new_string');
SET SESSION SQL_SAFE_UPDATES=1;
以上步骤可以使用以下SQL脚本自动执行:
SET SESSION SQL_SAFE_UPDATES=0;
SET group_concat_max_len=32768;
SELECT
CONCAT('UPDATE `', table_schema, '`.`', table_name, '` SET `', column_name, '` = REPLACE(`', column_name, '`, \'old_string\', \'new_string\');') AS `execute_this`
FROM
`information_schema`.`columns`
WHERE
`table_schema` = 'database_name' AND
`data_type` IN('char','varchar','tinytext','text','mediumtext','longtext') AND
`column_name` NOT LIKE 'binary%';
SET SESSION SQL_SAFE_UPDATES=1;
以上SQL脚本会自动查询出符合条件的表和列,并生成对应的SQL语句,方便进行批量替换操作。
参考资料: