SQL Select 包含字符串的所有表的所有列的所有行

SQL Select all rows on all columns on all tables that contain a string

我不太了解 SQL,但我的任务是将旧网站的内容导入新的 WordPress 网站。一切顺利,内部链接保留了旧站点 url。例如 post 图片 url 是:

www.oldsite.com/content/uploads/01/foo.jpg

而不是

www.newsiteurl.com/content/uploads/01/foo.jpg

我通过 phpMyAdmin 查看了数据库,但没有找到对旧站点 url 的直接引用 - 甚至在 post 的内容中也没有。 新链接工作正常,但我不打算通过 3 年的 posts 替换 urls。

有人知道这个url设置在哪里吗?如果不是,我如何在 WP SQL 数据库中搜索包含 "oldurl.com" 的任何单元格的所有表的所有项目?

我已经试过了

SELECT * FROM * WHERE * LIKE '%oldurl%'

但是 phpMyAdmin 告诉我 SQL 以为我正在使用它;它说 #1064 you have an error in your syntax

您正在尝试在 SQL 语句中使用 WHERE * LIKE something。你不能那样做。你必须提到具体的列名。

您要查找的字段在 wp_options table 中。他们有 siteurlhomeoption_name

您真的应该使用内置的导入和导出功能;这种通过复制数据 tables 来克隆站点的业务有些棘手。

如果您正在探索并试图弄清楚什么在什么地方,请将数据库转储到一个 SQL 文件,然后在文本编辑器中打开该文件,然后进行搜索。

我按照@NathanDawson 的建议在https://interconnectit.com/products/search-and-replace-for-wordpress-databases/ 使用了该工具。这是一个非常简洁的小插件,可以找到我在 post_content table.

中遗漏的一些条目