用于替换部分HTML的SQL查询(iframe src =“http:// to iframe src =”://)

时间:2015-03-30 09:45:25

标签: mysql sql joomla2.5

我有一个Joomla 2.5.28,现在使用https代替http

有些文章(很多)包含来自Vimeo的嵌入视频。

最初,这些视频是使用http嵌入的,所以现在我的数据库中有introtextfulltext字段,html代码如下:

<p>Text, etc...</p>
<iframe src="http://player.vimeo.com/video/123" width="690" height="518" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<iframe width="690" height="400" frameborder="0" scrolling="no" src="https://skydrive.live.com/embed?cid=xxx></iframe>
<ul>
<li>
...

那么,我如何构建一个SQL查询来保持HTML的原样但是替换:

<iframe src="http://

要:

<iframe src="://

2 个答案:

答案 0 :(得分:0)

您可以使用replace功能

mysql> select replace('<iframe src="http://player.vimeo.com/video/123"','<iframe src="http://','<iframe src="://') as replaced ;
+---------------------------------------------+
| replaced                                    |
+---------------------------------------------+
| <iframe src="://player.vimeo.com/video/123" |
+---------------------------------------------+

因此,使用上面的内容可以将更新命令写为

update table_name
set field_name = replace(field_name,'<iframe src="http://','<iframe src="://');

你也可以在选择的同时做同样的事情

select
replace(field_name,'<iframe src="http://','<iframe src="://') as field_name
from table_name

答案 1 :(得分:0)

参见mysql REPLACE函数:

SELECT REPLACE('<iframe src="http://player.vimeo.com/video/123" width="690" height="518" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>', '<iframe src="http://', '<iframe src="://');