我一直在查看Stackoverflow中的示例,但没有一个有效。 事实证明,我给出的表格中没有包含" ids"的列。的视频。 所以我需要得到那些" ids"来自名为" embed"的列包含" iframe"在谁的网址是" id"每个视频 我知道使用PHP我可以做一个正则表达式并获得该值,但是我需要从Mysql中获取它以与另一个包含那些" ids"的表进行比较。
"嵌入" column包含type:
的值<iframe src="https://www.example.com/embed/9526128" frameborder="0" height="481" width="608" scrolling="no"></iframe>
<iframe src="https://www.example.com/embed/ph193842d54b87g" frameborder="0" height="481" width="608" scrolling="no"></iframe>
&#34; id&#34;你应该得到以下(分别):
9526128
ph193842d54b87g
我一直在测试&#34; substring&#34;功能,但是&#34; ids&#34;变长的一直给我带来了问题......
添加了查询:
SUBSTRING_INDEX(embed, '/', -2)
答案 0 :(得分:1)
好的,我已经为我的问题找到了一个解决方案,我不知道它是否理想,但它是:
SUBSTRING_INDEX(SUBSTRING_INDEX(embed, '/', -2), '"', 1)
在哪里&#34;嵌入&#34;是&#34; iframes&#34;的列。位于。
答案 1 :(得分:0)
我找到了另一个适用于任何网址的解决方案,其中id位于'embed'
字后面。虽然您的解决方案仅在ID从字符串右侧第二次'/'
出现后才开始工作。
请试一试:
select @len:= instr(embed,'embed') from yourTablname;
SELECT Substring(embed,
@len+6,
locate('"',
embed,
@len
)-(@len+6)
) as id
From youTablname;
希望它有所帮助!