2012-10-04 80 views
2

一般:SQL搜索,当我搜索和替换我用这个代码替换先进

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

现在我想用<table>...<h1>Title</h1>...</table>

问题更换<h1>Title</h1>当然是在标签之间的文本对于所有页面(它是一个wordpress主页)是不同的。

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

+0

我会检索数据,查找/替换使用正则表达式或XML分析器,然后相应地更新表。在我看来,大多数编程语言都有更好的文本编辑工具。你喜欢这种方式吗? –

+0

听起来很合理。你的意思是检索所有数据到文本文件,然后上传文本?这可能通过phpMyAdmin? –

+0

是的,您可以使用phpMyAdmin将所有字段导出为SQL或CSV或其他内容。然后你可以修改它并再次导入。你只想做一次,对吧? –

回答

1

试试这个它的更新您的专栏和文本添加到您的所有记录的

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

对不起,也许我不是很清楚。每个页面中的内容都应该超出table-tags。您的解决方案将在开始时放置

,并且
到最后? –

+0

是的,这将围绕'post_content'包裹'table'-tag :) –

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>'); 
+0

这不是一个好主意。它会在很多情况下中断(注释掉标题,包含属性的标题等)。另外,您在关闭h1标签之前有闭包标签。 – dan1111

+0

你是对的,dan1111, – solaimuruganv

1

如果你需要的是把<table>...</table>标签在开始和结束,然后使用Anant Dabhi的解决方案。但是,如果你需要做比这更聪明的事情,那么SQL实际上不是适合这项工作的工具。

与HTML的简单处理的问题是多方面的:

  1. 如果你所寻找的标签注释中存在?
  2. 如果<h1>标签里面有属性,该怎么办?
  3. 如果帖子中有多个<h1>...</h1>会怎么样?

潜在的问题在继续。

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

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

+0

我明白你的1-3问题,但我设计了网页,所以我知道这不会是一个问题:)我害怕SQL不是“先进”足够了......我猜想一些PHP解决方案可以工作。所以我会设计一些我曾经运行过的php脚本? –

+0

@EmilGunnarsson,是的,如果你只是想将它应用到所有现有的职位,这将工作。 – dan1111