2

通常当我搜索和替换时,我使用以下代码:

UPDATE wp_posts SET post_content = REPLACE (post_content, 'old string', 'new string');

现在我想替换<h1>Title</h1><table>...<h1>Title</h1>...</table>

问题当然是标签之间的文本对于所有页面都是不同的(它是一个 wordpress 主页)。

关于如何解决这个问题的任何想法?可能吗?

4

3 回答 3

1

如果您只需要将<table>...</table>标签放在开头和结尾,请使用 Anant Dabhi 的解决方案。但是,如果您需要做比这更聪明的事情,SQL 确实不是适合这项工作的工具。

简单处理 HTML 的问题有很多:

  1. 如果您要查找的标签存在于评论中怎么办?
  2. 如果<h1>标签里面有属性怎么办?
  3. 如果帖子中有多个<h1>...</h1>怎么办?

潜在的问题还在继续。

既然您使用的是 WordPress,为什么不使用 PHP,它可以让您访问真正的 HTML 解析器?这个讨论可以让你开始:

您如何在 PHP 中解析和处理 HTML/XML?

于 2012-10-04T10:39:55.110 回答
1

试试这个它更新你的专栏并将文本添加到你的所有记录中

UPDATE wp_posts SET post_content = `<table>`+ post_content+`</table>` ;
于 2012-10-04T09:47:34.523 回答
0

这两个更新语句可以帮你做

UPDATE wp_posts 
 SET post_content = REPLACE (post_content, '<h1>', '<table><h1>');

 UPDATE wp_posts 
 SET post_content = REPLACE (post_content, '</h1>', '</table></h1>');
于 2012-10-04T09:50:43.687 回答