MYSQL更新查询,替换包含URL的部分字符串

问题描述 投票:0回答:2

感谢您花时间检查我的代码。我有数百行需要更新,需要删除 URL 和链接的引用。我已经尝试了下面的代码以及转义双引号,但是它继续抛出错误而没有帮助。

感谢提供的任何帮助。

 UPDATE `wpsr_posts` SET post_content = REPLACE(post_content,'<a href="https://www.website.com/category/page.html" >link description</a>',' ')  WHERE post_content LIKE '%<a href="https://www.website.com/category/page.html" >link description</a>%'

mysql
2个回答
0
投票

抱歉,我提出的问题实际上并不包含我最终确定的问题。我确实希望这对将来的人有帮助。

UPDATE `wpsr_posts` SET `post_content` = REPLACE(`post_content`,'<a href="https://www.website.com./category/product/page.html">product &amp; other info</a>', " ") where post_content LIKE '%https%' AND post_type='product'

原因是替换字符串末尾包含一个

&amp;
分号,导致 MySQL 在此时结束查询。

解决方案是更改 mysql 分隔符,默认为 ;字符串中不会出现的内容,例如〜.

感谢您的指导 Bagus Tesa。


0
投票

我有一个类似的问题,我的目标是替换部分 URL 字符串,但找不到正确的语法。

我假设 'post_content' 是仅替换帖子表字段内容的一部分的关键。 “长文本”字段中正文中的完整 URL 为: 约翰·巴里的电影、书籍和配乐

也许有人可以帮忙? 这是语法和 MySQL 响应,我试图将 “tag=MYTAG1” 替换为 “MYTAG2”

UPDATE `node__body` SET `body_value` = REPLACE(`post_content`,'tag=MYTAG2') where post_content LIKE '%tag=MYTAG1%';

MySQL 说:文档

#1064 - 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解要使用的正确语法 靠近 ') 其中 post_content LIKE '%tag=MYTAG1%'' 在第 1 行

© www.soinside.com 2019 - 2024. All rights reserved.