查询以替换所有数据库表中的术语

时间:2017-03-17 16:23:14

标签: mysql sql

我想搜索http://example.com并替换为https://example.com

我知道我可以使用这种方法定位特定的表和列:

UPDATE table_name SET post_content = REPLACE(column_name, 'http://example.com', 'https://example.com');

但是如何运行一个针对所有表/列的查询:整个数据库?

2 个答案:

答案 0 :(得分:0)

执行数据库转储并将其作为文本文件打开。查找和替换。保存然后重新导入。

据我所知,我不认为你可以在一个查询中对所有表使用REPLACE。

答案 1 :(得分:0)

有两种方法可以做到这一点。第一种是通过information_schema创建SQL UPDATE并将其作为预准备语句执行。这是很多工作。

如果你可以进行替换,你必须查看每一列,所以你必须忽略INTS和ENUM等。

第二种方式不是真正的SQL更改,但它可以工作:从数据库生成完整的SQL-Dump,并通过编辑器或使用AWK或SED的命令行在此文件中进行更改。之后,您可以导入更改的文件