替换数字之间的字符

时间:2013-09-20 01:04:50

标签: mysql sql phpbb3

我将phpbb2论坛转换为phpbb3。 但我有问题,phpbb2发布链接,这些链接仍留在MySQL数据库中。

phpbb2帖子链接例如。

/viewtopic.php?p=106352#106352

和phpbb3是:

/viewtopic.php?p=106352#p106352

(#之后有字母p)

来自phpbb2的当前链接无效,转换后, 所以我需要帮助替换MySQL DB中的帖子ID(数字)之间的#。

我有很多链接,如:

/viewtopic.php?p=106352#106352 

我需要用p替换#(最后添加p) 像:

/viewtopic.php?p=106352#p106352 

我不太了解MySQL,所以我卡住了。

请帮忙

2 个答案:

答案 0 :(得分:1)

select replace('/viewtopic.php?p=106352#106352','#','#p')

update myTable
set myColumn = replace(myColumn, '#', '#p')
where someColumn = someThing

答案 1 :(得分:1)

一种可能的方法:

UPDATE phpbb_posts
   SET post_text = REPLACE(post_text, '#', '#p')
 WHERE post_text REGEXP '^[^#]*p=[0-9]+#[0-9]+$'
指定

WHERE子句以防止更新不遵循格式的链接。

SQL Fiddle