我正在处理基于WordPress的项目,我需要批量编辑数据库中的帖子。
目前我有单元格,内容为Text <pre> Text\r\nText\r\nText </pre>
我需要做的是找到所有\r\n
字符串并将其替换为\r\n\r\n
。到目前为止,我有这个:
UPDATE `table_name`
SET `field_name` = replace(field_name, '\r\n', '\r\n\r\n\')
问题是,\r\n\
标记之外还有<pre>
个文字,我不想影响这些文字。这就是为什么我需要在调用替换之前执行find (start: '<pre>' end: '</pre>')
之类的操作。我根本不知道如何在MySQL中这样做。
在网络搜索时,我发现了一些关于正则表达式的东西,但我不知道它是如何工作的。
答案 0 :(得分:0)
MySQL没有正则表达式替换功能。我说你有两个选择 - 要么创建一个用户定义的功能来进行这种替换,要么,如果你不能/不知道怎么做,你必须使用脚本/用不同语言编写的程序。它可以是例如一个PHP脚本,它将连接到数据库并执行所需的替换。另一种方法是将包含帖子的表转储到文件,使用sed或类似的东西,然后再次导入数据。
使用sed可能比PHP花费更少的时间,并且语法相当容易学习。
无论你选择什么,记住以前做个备份总是一个好主意。