SQL搜索和替换高级

时间:2012-10-04 09:38:00

标签: sql

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

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

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

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

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

3 个答案:

答案 0 :(得分:1)

尝试此操作,更新您的专栏并为所有记录添加文字

UPDATE wp_posts SET post_content = `<table>`+ post_content+`</table>` ;

答案 1 :(得分:1)

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

简单处理HTML的问题很多:

  1. 如果您要查找的标签存在于评论中,该怎么办?
  2. 如果<h1>标记内有属性,该怎么办?
  3. 如果帖子中有多个<h1>...</h1>怎么办?
  4. 潜在的问题不断发生。

    由于您使用的是WordPress,为什么不使用PHP,这使您可以访问真正的HTML解析器? 这个讨论可以帮助你开始:

    How do you parse and process HTML/XML in PHP?

答案 2 :(得分: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>');