【问题标题】:How i can delete a portion of my text in many record of mysql db?如何在 mysql db 的许多记录中删除我的部分文本?
【发布时间】:2018-11-03 14:05:07
【问题描述】:

我想知道如何删除所有以“MyString”开头并以“AnotherString”结尾的字符串?这是因为在(字符串)里面有一个每次都会改变的数字。 对于每条记录,我有大约 30 个要删除的字符串(所有不同,但开始和结束始终相同)和 1000 条记录。有这样的查询吗?

我看到了:

UPDATE wp_posts
SET post_content = REPLACE(post_content, "mystring", "another_string")

但如果字符串相同,则此方法有效。 (我想在里面删除的字符串有一个每次都会改变的数字。

存在执行此操作的查询:

delete or replace with ""  all string ( inside my code ) that start with "xxxxx" and finish with "yyyy" ?

这是我必须删除的两个字符串(示例):(顶部:和左侧:总是不同的!)

<span style="border-radius: 2px; text-indent: 20px; width: auto; padding: 0px 4px 0px 0px; text-align: center; font: bold 11px/20px 'Helvetica Neue',Helvetica,sans-serif; color: #ffffff; background: #bd081c no-repeat scroll 3px 50% / 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 844px; left: 275px;">Salva</span>

<span style="border-radius: 2px; text-indent: 20px; width: auto; padding: 0px 4px 0px 0px; text-align: center; font: bold 11px/20px 'Helvetica Neue',Helvetica,sans-serif; color: #ffffff; background: #bd081c no-repeat scroll 3px 50% / 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 766px; left: 350px;">Salva</span>

当我在我的代码中找到以&lt;span style 开头的字符串时,这是可能的 最后以&lt;/span&gt; 删除它?

【问题讨论】:

  • 样本数据和期望的结果真的很有帮助。
  • 这适用于 MySQL 8.0+ 吗?因为那时可以使用REGEXP_REPLACE 吗?
  • 如果你知道字符串是什么,那你为什么不能写一个查询来删除它们呢?换句话说,你打算如何删除你不知道的东西?
  • 我有几个字符串(行)要删除。这些字符串在我必须保留的其他代码中。字符串总是在变化,但它们总是以相同的方式开始和结束
  • 示例数据和预期输出不清楚。您能详细说明一下吗?

标签: mysql sql string replace


【解决方案1】:
UPDATE wp_posts
SET post_content = CONCAT(SUBSTRING(post_content, LEN('string') + 1), 'string')
WHERE post_content LIKE 'string%';

【讨论】:

  • 我修改了帖子希望现在我们能更好地理解
【解决方案2】:

这个未经测试的update 更新以'start' 开头和以'end' 结尾的项目,并将post_content 设置为它们之间的值。

update wp_posts
set post_content = SUBSTRING(post_content, LEN('start') + 1, LEN('post_content') - LEN('end'))
where post_content LIKE 'start%' and post_content like '%end';

【讨论】:

  • 我修改了帖子希望现在我们能更好地理解
【解决方案3】:

你可以试试这个:

UPDATE wp_posts
SET post_content = CONCAT(SUBSTRING(post_content,
                                    1,
                                    INSTR(post_content, '<span') - 1),
                          SUBSTRING(post_content,
                                    INSTR(post_content, '</span>') + 7))
WHERE post_content LIKE '%<span%</span>%';

Demo

这里的逻辑是拼接出一个假定的单个 &lt;span&gt; 标签,如您在问题和 cmets 中所述。

【讨论】:

  • 字符串总是在变化...我修改了帖子以使我更好地理解
  • 我修改了帖子希望现在我们能更好地理解
  • @FabrizioSavino 我根据我对您问题的最新理解更新了我的答案。
猜你喜欢
  • 2017-11-11
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 2022-12-02
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
相关资源
最近更新 更多