0

我正在尝试将 MySql 数据库中旧 BB 标记标记的所有实例替换为更新的、略有不同的实例。

旧格式是这样的...

[youtube:********]{Video ID}[/youtube:********]

我想用这个代替...

[youtube:********]http://www.youtube.com/watch?v={Video ID}[/youtube:********]

其中 * 是字母数字字符的随机字符串。所以REPLACE(feild, '[youtube:********]', '[youtube:********]http://www.youtube.com?watch?v=不幸的是根本不会这样做。

我所做的所有笨拙的尝试REPLACE()INSTR()导致了一些讨厌的事情,比如[b]Bold Text[/b]http://www.youtube.com/watch?v=

有没有办法在 MySql 中进行这种模式替换?可能使用正则表达式?

谢谢你。

4

1 回答 1

1

这是你试过的吗?

UPDATE table SET Field = REPLACE(Field,']{',']http://www.youtube.com/watch?v={')

这将取决于是否没有任何其他出现 ']{'

编辑:您可能还想尝试:

UPDATE table SET Field = LEFT(Field,#) + 'http://www.youtube.com/watch?v='+ 
RIGHT(Field,(Char_Length(Field)-#);

只需使用 MYSQl 文档检查语法。Char_LNEGTH() 可能需要为 LENGTH() - 我确定你明白了

于 2011-03-04T20:55:30.200 回答