Mysql - 获取文本字符串的一部分
问题描述:
我一直在看Stackoverflow中的例子,但都没有工作。 事实证明,我所提供的表格不包含带有视频“ID”的列。 所以我需要从一个名为“嵌入”的列中获取这些“ID”,其中包含一个“iframe”,其URL是每个视频的“ID”。 我知道,用PHP我可以做一个正则表达式并获得该值,但我需要从Mysql中获得此值,以便与包含这些“ID”的另一个表进行比较。Mysql - 获取文本字符串的一部分
“嵌入”一栏包含类型的值:
<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>
与“IDS”你应该得到的将是以下(分别):
9526128
ph193842d54b87g
我已经与测试“子串”功能,但作为“ids”长度可变,一直给我带来问题...
添加的查询:
SUBSTRING_INDEX(embed, '/', -2)
答
好吧,我已经找到了我的问题的解决方案,我不知道这是否是理想的,但它是:
SUBSTRING_INDEX(SUBSTRING_INDEX(embed, '/', -2), '"', 1)
其中“嵌入”是这里的“I帧”是列位于。
答
我发现了另一个解决方案,它将工作于任何 url,其中id在'embed'
之后。虽然你的解决方案只适用于从字符串右侧第二次出现'/'
后id开始。
请尝试一下:
select @len:= instr(embed,'embed') from yourTablname;
SELECT Substring(embed,
@len+6,
locate('"',
embed,
@len
)-(@len+6)
) as id
From youTablname;
希望它能帮助!
+0
你试过上面的查询吗? –
请添加您到目前为止尝试过的查询。 –
完成查询添加 – Kokox
所以嵌入列包含从iframe作为字符串开始的整个网址?这样对吗? –