我的数据库有一个表格content
,其中包含fulltext
列,其中我嵌入了以下视频:
<iframe src="//example.com" width="600" height="518" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
现在,宽度有很多不同的尺寸,为了最大化和规范化所有视频的宽度,我想将其更改为:
width="100%"
我尝试了以下查询但没有成功:
update `#__content` set `fulltext` = replace(`fulltext`,'width="600"','width="100%"')
但是如何修复各种不同宽度?
运行查询的列全文before
:
<p style="text-align: justify;">Neste âmbito, pretende-se essencialmente fomentar a compreensão do que é um ativo e um passivo, qual a diferença entre ambos, assim como o que é um gasto e um rendimento, em que demonstrações financeiras se enquadram e que informação se pode retirar das mesmas.</p>
运行查询的列全文after
:
100% style="text-align: justify;">Neste âmbito, pretende-se essencialmente fomentar a compreensão do que é um ativo e um passivo, qual a diferença entre ambos, assim como o que é um gasto e um rendimento, em que demonstrações financeiras se enquadram e que informação se pode retirar das mesmas.</p>
答案 0 :(得分:1)
此处如何使用substring_index
作为
set @str = '<iframe src="//example.com" width="600" height="518" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
select
replace(
@str,replace(
substring_index(
substring_index(@str,'width=',-1
),' ',1
),'"',''
),'100%'
) as new_val;
输出
+------------------------------------------------------------------------------------------------------------------------------------------+
| new_val |
+------------------------------------------------------------------------------------------------------------------------------------------+
| <iframe src="//example.com" width="100%" height="518" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe> |
+------------------------------------------------------------------------------------------------------------------------------------------+
因此,在上面的查询中,只需将@str替换为您的列名,并使其成为更新命令。
更新命令应为
update `#__content`
set `fulltext` = replace(
`fulltext`,replace(
substring_index(
substring_index(`fulltext`,'width=',-1
),' ',1
),'"',''
),'100%'
) ;
<强>更新强>
要更新iframe中的内容,需要将substring_index
更多链接为
set @str = '
<body>
<img src="/log.jpg" width="300">
<p style="width:200px;">hello</p>
<iframe src="//example.com" width="600" height="518" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
select
replace(
@str,
replace(
substring_index(
substring_index(
substring_index(
substring_index(
@str,'<iframe',-1
),
'</iframe',1
),
'width=',-1
),
' ',1
),
'"',''
),
'100%'
) as new_val;
new_val:
<body>
<img src="/log.jpg" width="300">
<p style="width:200px;">hello</p>
<iframe src="//example.com" width="100%" height="518" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
因此更新查询将为
update `#__content`
set `fulltext`=
replace(
`fulltext`,
replace(
substring_index(
substring_index(
substring_index(
substring_index(
`fulltext`,'<iframe',-1
),
'</iframe',1
),
'width=',-1
),
' ',1
),
'"',''
),
'100%'
)