【问题标题】:Wordpress SQL query to search and replace stringWordpress SQL 查询来搜索和替换字符串
【发布时间】:2015-02-15 00:02:03
【问题描述】:

我正在尝试替换我的 Wordpress 数据库中的以下字符串:

[wpai_google_translate_text({./@name},{description[1]/short[1]},"en")]

我尝试了 'https://wordpress.org/plugins/search-and-replace/' 插件,但它无法处理上述字符串。

我还尝试了谷歌上的一些其他解决方案,例如 phpmyadmin 中的以下命令:

SELECT * FROM wp_posts WHERE (post_content LIKE '%TEXT-TO-FIND-GOES-HERE%');

但这只是从帖子内容中搜索。

我尝试替换的文本不存在于帖子或页面或任何类型的用户生成的内容中。

所以我的问题是,如何在整个数据库中搜索该字符串并将其替换为其他内容?

谢谢

【问题讨论】:

    标签: php mysql wordpress


    【解决方案1】:

    Wordpress 数据库只是一个 MySQL 数据库。您需要发出此 SQL 查询才能搜索和替换文本

    update [table_name] set [field_name] replace([field_name],'[string_to_find]','[string_to_replace]');
    

    如果您有 phpmyadmin 或者您在命令行上执行此操作,您可以编辑上面的查询并运行它。编辑时要小心,如果您不小心,它可能会用错误的字符串替换您的整个数据库。

    【讨论】:

    • 问题是,我不知道文本驻留在哪个表或字段中。我认为有一个一般查询,我只需插入要搜索的文本和要替换的文本。抱歉这个菜鸟问题
    • 哈哈,没关系,您需要修改的所有信息都在 wp_posts 表中。在你做任何事情之前做一个 mysqldump 或导出 wp_posts 表。当你备份或导出时,你应该有一个 wp_posts.sql 文件
    • 那么在这种情况下我应该使用什么 field_name 呢?
    • post_content 是它存储内容的字段
    • 这里有一个图表可以帮助您:codex.wordpress.org/images/9/97/WP3.8-ERD.png 找到它指向 wp_posts 的位置,您应该会看到所有其他字段类型
    【解决方案2】:

    关闭,但您的查询有误。试试:

    UPDATE wp_posts SET post_content = valueForField WHERE post_content LIKE '%TEXT-TO-FIND-GOES-HERE%';

    【讨论】:

    • @RahilWazir 因为 OP 想要更改他的数据库中的现有字段
    猜你喜欢
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    相关资源
    最近更新 更多