首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用SQL从WordPress帖子中删除超文本标记语言失败,没有错误

使用SQL从WordPress帖子中删除超文本标记语言失败,没有错误
EN

Stack Overflow用户
提问于 2020-05-22 00:50:35
回答 1查看 18关注 0票数 1

我正在尝试从所有wordpress帖子和页面中删除HTML字符串(但首先删除帖子)

我有一个查询,我找到了字符串存在的所有实例,它看起来像这样,运行得很好:

代码语言:javascript
运行
复制
SELECT * FROM dmwbg_posts WHERE post_content
                                 LIKE
                             '%<p>Stöd oss</p><p>Vårt arbete</p><p>Om MyRight</p><p>Jobb och praktik</p><p>Nyheter</p><p>Kontakta oss</p><p>Besöks- och postadress: MyRight Liljeholmen 7A 117 63<br /> Telefon: 08-505 776 00   |   Epost: <a href="mailto:info@myright.se">info@myright.se</a>   <span>|   Org. nr 802402-9376</span></p><p><strong>Stöd MyRight med en gåva</strong><br /> Swish: 123 900 11 08<br /> <span>Plusgiro: 90 01 10-8</span></p><p>Besöks- och postadress: <br />MyRight Liljeholmen 7A, 117 63 Stockholm<br /> Telefon: 08-505 776 00<br /> Epost: <a href="mailto:info@myright.se">info@myright.se<br /> </a><span>Org. nr 802402-9376</span></p><p><strong>Stöd MyRight med en gåva</strong><br /> Swish: 123 900 11 08<br /> <span>Plusgiro: 90 01 10-8</span></p>%';

这个查询返回126行,我只想删除特定的字符串。不是行中的所有数据。

为此,我编写了以下查询:

代码语言:javascript
运行
复制
UPDATE dmwbg_posts
SET
    post_content = ''
WHERE
    post_content = '%<p>Stöd oss</p><p>Vårt arbete</p><p>Om MyRight</p><p>Jobb och praktik</p><p>Nyheter</p><p>Kontakta oss</p><p>Besöks- och postadress: MyRight Liljeholmen 7A 117 63<br /> Telefon: 08-505 776 00   |   Epost: <a href="mailto:info@myright.se">info@myright.se</a>   <span>|   Org. nr 802402-9376</span></p><p><strong>Stöd MyRight med en gåva</strong><br /> Swish: 123 900 11 08<br /> <span>Plusgiro: 90 01 10-8</span></p><p>Besöks- och postadress: <br />MyRight Liljeholmen 7A, 117 63 Stockholm<br /> Telefon: 08-505 776 00<br /> Epost: <a href="mailto:info@myright.se">info@myright.se<br /> </a><span>Org. nr 802402-9376</span></p><p><strong>Stöd MyRight med en gåva</strong><br /> Swish: 123 900 11 08<br /> <span>Plusgiro: 90 01 10-8</span></p>%';

这个查询运行时没有任何错误,但是它不会替换任何数据。查询结果显示:

代码语言:javascript
运行
复制
Query OK, 0 rows affected (0.02 sec)
Rows matched: 0  Changed: 0  Warnings: 0

在运行UPDATE查询之后运行SELECT查询将显示相同数量的结果,并且数据仍然显示在WordPress站点上。我不确定我做错了什么。

我运行的是MariaDB版本10.1.44-MariaDB-0ubuntu0.18.04.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-22 01:10:25

在您的update查询中,您将使用%通配符和=,该通配符与LIKE一起使用。这就是为什么它更新0条记录的原因。在您的情况下,应该使用replace()函数

代码语言:javascript
运行
复制
update table_name set col_name=replace(col_name,'From_text', 'to_text') where condition

你的价值观应该是这样的

代码语言:javascript
运行
复制
update dmwbg_posts set post_content = replace(post_content, '<p>Stöd oss</p><p>Vårt arbete</p><p>Om MyRight</p><p>Jobb och praktik</p><p>Nyheter</p><p>Kontakta oss</p><p>Besöks- och postadress: MyRight Liljeholmen 7A 117 63<br /> Telefon: 08-505 776 00   |   Epost: <a href="mailto:info@myright.se">info@myright.se</a>   <span>|   Org. nr 802402-9376</span></p><p><strong>Stöd MyRight med en gåva</strong><br /> Swish: 123 900 11 08<br /> <span>Plusgiro: 90 01 10-8</span></p><p>Besöks- och postadress: <br />MyRight Liljeholmen 7A, 117 63 Stockholm<br /> Telefon: 08-505 776 00<br /> Epost: <a href="mailto:info@myright.se">info@myright.se<br /> </a><span>Org. nr 802402-9376</span></p><p><strong>Stöd MyRight med en gåva</strong><br /> Swish: 123 900 11 08<br /> <span>Plusgiro: 90 01 10-8</span></p>', '')
WHERE post_content  LIKE '%<p>Stöd oss</p><p>Vårt arbete</p><p>Om MyRight</p><p>Jobb och praktik</p><p>Nyheter</p><p>Kontakta oss</p><p>Besöks- och postadress: MyRight Liljeholmen 7A 117 63<br /> Telefon: 08-505 776 00   |   Epost: <a href="mailto:info@myright.se">info@myright.se</a>   <span>|   Org. nr 802402-9376</span></p><p><strong>Stöd MyRight med en gåva</strong><br /> Swish: 123 900 11 08<br /> <span>Plusgiro: 90 01 10-8</span></p><p>Besöks- och postadress: <br />MyRight Liljeholmen 7A, 117 63 Stockholm<br /> Telefon: 08-505 776 00<br /> Epost: <a href="mailto:info@myright.se">info@myright.se<br /> </a><span>Org. nr 802402-9376</span></p><p><strong>Stöd MyRight med en gåva</strong><br /> Swish: 123 900 11 08<br /> <span>Plusgiro: 90 01 10-8</span></p>%';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61939625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档