gpt4 book ai didi

sql - 如何更改 MySQL 字段内的 URL?

转载 作者:可可西里 更新时间:2023-11-01 06:53:19 24 4
gpt4 key购买 nike

我有一个名为“wp-posts”的表,其中包含一个字段“post-content”。该字段包含博客文章的文本。我想更改所有记录以将一个 URL 替换为另一个记录。

想象一下,我可以拥有这样的东西:

This is a test and somewhere there's something like <img src="http://oldurl.com/wp-content/somimg.jpg"> and something like <a href="http://oldurl.com/something">a link</a>."

我想要它

This is a test and somewhere there's something like <img src="http://newurl.com/wp-content/somimg.jpg"> and something like <a href="http://newurl.com/something">a link</a>."

我需要能够为表格中的每条记录更改此设置,而无需在 Wordpress 中打开每个帖子并手动更改它们。必须有办法做到这一点

最佳答案

这可以通过使用 MySQL 的 replace() 函数的简单 SQL 语句轻松实现。在我们这样做之前,你绝对应该做一个数据库转储或任何你用于备份的东西。这不仅是因为它是正确的事情™,而且如果您在替换时犯了错误,可能很难撤消它(是的,您可以回滚,但您可能只会在以后发现您的错误。)

要从 MySQL 创建数据库转储,您可以运行如下命令 --

mysqldump -h hostname -u username -p databasename > my_sql_dump.sql

在哪里(你可能知道这一点,但为了后代的完整性......)--

  • hostname 是数据库主机名的占位符。如果数据库服务器在您自己的机器上运行,那么您可以使用“localhost”或完全不使用“-h 主机名”
  • 用户名 是有权在数据库上运行转储的用户的占位符。这通常是管理员,但如果是共享数据库,则可能只是您。<​​/li>
  • databasename 是包含您的表的整个数据库的名称。 (请注意,“-p”与此数据库名称无关。“-p”表示 MySQL 应该要求您输入密码才能登录。)

现在我们已经解决了这个问题,您可以使用以下方式登录 MySQL 数据库:

mysql -h hostname -u username -p databasename

然后简单地运行这个语句:

UPDATE `wp-posts` SET `post-content` = REPLACE(`post-content`, "http://oldurl.com", "http://newurl.com");

应该就可以了!

如果你犯了一个错误,你通常可以重新运行语句,将原始文本和新文本颠倒过来(如果新文本——在你的例子中是新 URL——在你进行替换之前不存在于文本中.) 有时这是不可能的,具体取决于新文本的内容(同样,在您的情况下不太可能。)无论如何,您总是可以尝试恢复 sql 转储 --

cat my_sql_dump.sql | mysql -h hostname -u username -p databasename

关于sql - 如何更改 MySQL 字段内的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/970357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com