replaceMySQL上的文本 – 通配符来replace某些可变部分?

我正在尝试在我的WordPress MySQL数据库上应用文本replace。 我需要删除当前图像html代码的一部分,但是这部分文本是可变的,尽pipe有一部分永远不会改变。

有一些通配符 ,我可以使用MySQL的replace?

例如:我想replace这个:

<a target="_self" href="actualidad/tecnologia/4455-windows-7-surpasses.html"><img src=”http://www.example.com/files/HIDDEN_264_23662_FOTO_win01.jpg" width="215" height="156" /></a> 

 <img src=”http://www.example.com/files/HIDDEN_264_23662_FOTO_win01.jpg" width="215" height="156" /> 

并删除HREF部分,所以我想在一个类似于这个replace:

 update wp_posts set post_content = REPLACE (post_content, '<a target="_self" href=*<img','<img'); 

有没有一个“*”(或正则expression式),采取什么之间的'href'和'

我通常作弊并将数据库转储到文本,然后使用sed(如果数据库足够小,则使用Notepad ++)。 除此之外,使用Perl或Python编程更容易。

用直接的SQL做这种操作是痛苦的。 如果你这样做,我会强烈build议你避免更换。 这不是它通常使用的。 如果您要对现有的行进行批量更改,请改为使用UPDATE 。

%在这种情况下不起作用?

不幸的是,没有进一步的正则expression式API可用。

人们已经在MySQL 4.0的日子里对它进行了破解,但是这样的努力并没有使它成为主stream的MySQL二进制文件。

http://www.php-groupies.de/blogs/archives/17-Regular-Expression-Functions-for-MySQL.html

http://forge.mysql.com/worklog/task.php?id=353

您的UPDATE语句应该足够了。

 update wp_posts set post_content = REPLACE (post_content, '<a target="_self" href=*<img','<img'); 

即使这样的API存在,也没有什么意义上的应用比现有的更好。 您的更新进行全表扫描。 使用REGEXP应用WHERE仍然会导致全表扫描。 你原来的更新是最好的给定的情况。