Mysql - 获取文本字符串

时间:2017-10-18 17:16:51

标签: mysql string function split substring

我一直在查看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)

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;

Click here for Demo

希望它有所帮助!