mysql - SQL查询以根据通配符替换字符串

标签 mysql wordpress replace phpmyadmin mariadb

我想在我的 WP 数据库上运行这种类型的查询以删除所有 id="more-"的 span 实例:

UPDATE wp_posts SET post_content = REPLACE (
post_content,
'<p><span id="more-35075"></span></p>',
'');

但在我的示例中,“more-”后面的数字是一个变量。如何使用类似通配符的方式编写此查询:span id="more-*.

谢谢

最佳答案

在MySQL 8.0及以上版本,可以使用 REGEX_REPLACE() 功能。在 absence of the same ,可以完成一些复杂的字符串操作。这是基于你的 confirmation ,该子字符串在一个值中只出现一次。

REPLACE() 不支持通配符、模式、正则表达式等。它仅将给定的 fixed 子字符串替换为更大字符串中的另一个 fixed 子字符串。

相反,我们可以尝试提取 post_content 的部分内容.我们将在 '<p><span id="more-' 之前提取前导子字符串使用 Substring_Index() 功能。同样,我们将提取 '"></span></p>' 之后的尾随子字符串部分。

现在,我们可以简单地 Concat() 这些部分以获得所需的 post_content .您可以在此处找到使用的各种字符串函数的详细信息:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html

我还添加了一个 WHERE条件,以便我们只选择与我们给定的子字符串条件匹配的行。

UPDATE wp_posts 
SET post_content = 
CONCAT( 
       SUBSTRING_INDEX(post_content, 
                       '<p><span id="more-', 
                       1), 
       SUBSTRING(post_content, 
                 LOCATE('"></span></p>', 
                        post_content, 
                        LOCATE('<p><span id="more-',
                               post_content)
                        ) + 13) -- 13 is character length of "></span></p>
      )
WHERE post_content LIKE '%<p><span id="more-%"></span></p>%';

查询 #1:更新操作前的数据

SELECT * FROM wp_posts;

| post_content                                            |
| ------------------------------------------------------- |
| adasdaadsa<p><span id="more-35075"></span></p>121324124 |
| 1412123123<p><span id="more-232"></span></p>adasdaafas  |

查询 #2:更新操作后的数据

SELECT * FROM wp_posts;

| post_content         |
| -------------------- |
| adasdaadsa121324124  |
| 1412123123adasdaafas |

View on DB Fiddle

关于mysql - SQL查询以根据通配符替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53285104/

相关文章:

mysql - 在mysql中获取列名作为别名时从表中选择*

php - 如何将 MySQL 内容(文本+html 内容)分成列?

css - Bootstrap 3 网格布局中的 Wordpress Loop 帖子

将 NA 或 <NA> 替换为数据框列中的某些内容或其他内容

MySQL - 显示记录及其父项

mysql - 我可以将 MYSQL 空间扩展与 sqlalchemy 一起使用吗?

PHP单元 |测试json返回

javascript - 添加子菜单后,Ubermenu 元素不可点击

html - 使用 css 将图像替换为 youtube 视频

c - 使用 PCRS 进行替换的工作示例