我想搜索http://example.com
并替换为https://example.com
。
我知道我可以使用这种方法定位特定的表和列:
UPDATE table_name SET post_content = REPLACE(column_name, 'http://example.com', 'https://example.com');
但是如何运行一个针对所有表/列的查询:整个数据库?
答案 0 :(得分:0)
执行数据库转储并将其作为文本文件打开。查找和替换。保存然后重新导入。
据我所知,我不认为你可以在一个查询中对所有表使用REPLACE。
答案 1 :(得分:0)
有两种方法可以做到这一点。第一种是通过information_schema创建SQL UPDATE并将其作为预准备语句执行。这是很多工作。
如果你可以进行替换,你必须查看每一列,所以你必须忽略INTS和ENUM等。
第二种方式不是真正的SQL更改,但它可以工作:从数据库生成完整的SQL-Dump,并通过编辑器或使用AWK或SED的命令行在此文件中进行更改。之后,您可以导入更改的文件