Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-获取文本字符串的一部分_Mysql_String_Function_Split_Substring - Fatal编程技术网

Mysql-获取文本字符串的一部分

Mysql-获取文本字符串的一部分,mysql,string,function,split,substring,Mysql,String,Function,Split,Substring,我一直在看Stackoverflow中的示例,但没有一个有效。 事实证明,给我的表中没有包含包含视频“ID”的列。 因此,我需要从一个名为“嵌入”的列中获取这些“id”,该列包含一个“iframe”,其中url是每个视频的“id”。 我知道用PHP我可以做一个正则表达式并得到那个值,但我需要从Mysql得到这个值,以便与另一个包含那个些“ID”的表进行比较 “嵌入”列包含以下类型的值: <iframe src="https://www.example.com/embed/9526128"

我一直在看Stackoverflow中的示例,但没有一个有效。 事实证明,给我的表中没有包含包含视频“ID”的列。 因此,我需要从一个名为“嵌入”的列中获取这些“id”,该列包含一个“iframe”,其中url是每个视频的“id”。 我知道用PHP我可以做一个正则表达式并得到那个值,但我需要从Mysql得到这个值,以便与另一个包含那个些“ID”的表进行比较

“嵌入”列包含以下类型的值:

<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>
我一直在用“substring”函数进行测试,但作为长度可变的“id”给我带来了问题

新增查询:

SUBSTRING_INDEX(embed, '/', -2)

好的,我已经为我的问题找到了一个解决方案,我不知道它是否是理想的,但它是:

SUBSTRING_INDEX(SUBSTRING_INDEX(embed, '/', -2), '"', 1)

其中“嵌入”是“iFrame”所在的列。

我找到了另一个解决方案,它适用于id位于
'embed'
word之后的任何url。而您的解决方案仅在字符串右侧第二次出现
'/'
后id开始时有效

请尝试一下:

select @len:= instr(embed,'embed') from yourTablname;

SELECT Substring(embed,
                 @len+6,
                 locate('"',
                        embed,
                        @len
                        )-(@len+6)
                 ) as id
 From youTablname;


希望有帮助

请添加到目前为止您尝试过的查询。完成查询添加是否嵌入列包含从iframe开始的整个url作为字符串?是吗?是的,是的。。让我试试看
select @len:= instr(embed,'embed') from yourTablname;

SELECT Substring(embed,
                 @len+6,
                 locate('"',
                        embed,
                        @len
                        )-(@len+6)
                 ) as id
 From youTablname;