【问题标题】:SQL Query to replace part of HTML (iframe src="http:// to iframe src="://)用于替换部分 HTML 的 SQL 查询(iframe src="http:// 到 iframe src="://)
【发布时间】:2015-03-30 09:45:24
【问题描述】:

我有一个 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="://

【问题讨论】:

  • 我建议您更新数据库(重写字段)而不是尝试修改选择查询,因为您可能会发现性能损失相当大。
  • 我认为应该是//... 而不是://...

标签: mysql sql joomla2.5


【解决方案1】:

你可以使用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

【讨论】:

    【解决方案2】:

    见mysqlREPLACE函数:

    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="://');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多