需要帮助从SQLite中的URL链接提取值吗
我正在为SQLite使用DB浏览器 我有一个名为“df”的表和一列,其中包含一组名为“links”的URL链接。所有链接均来自同一网站,并遵循相同的结构化格式: https://“网站名称”/“语言”/“内容类型”/“内容id”/“内容名称” 语言的几个例子: 1.恩乌 2.弗鲁卡 3.恩努斯 等等 此外,链接的“内容类型”部分中只有一个唯一值 目标: 我需要从链接中提取所有内容ID的帮助 我尝试过正则表达式,但这会提取与正则表达式匹配的所有信息,而不是内容id。我还使用了substr函数(请参见下面的代码),但这会引发一些问题: 1.有些链接不是以“www”开头的 2.并非所有内容ID都具有相同的字符长度。 3.并非所有语言ID的字符长度都相同需要帮助从SQLite中的URL链接提取值吗,sql,sqlite,Sql,Sqlite,我正在为SQLite使用DB浏览器 我有一个名为“df”的表和一列,其中包含一组名为“links”的URL链接。所有链接均来自同一网站,并遵循相同的结构化格式: https://“网站名称”/“语言”/“内容类型”/“内容id”/“内容名称” 语言的几个例子: 1.恩乌 2.弗鲁卡 3.恩努斯 等等 此外,链接的“内容类型”部分中只有一个唯一值 目标: 我需要从链接中提取所有内容ID的帮助 我尝试过正则表达式,但这会提取与正则表达式匹配的所有信息,而不是内容id。我还使用了substr函数(请参
SELECT
substr(links, 36, instr(links, '/') +1) AS content_id
FROM df
字符串操作?我在PatIndex()中使用字符串“内容类型”来查找该字符串的存在位置,然后使用CharIndex()来查找内容id的起始斜杠和结束斜杠,然后使用Substring()来拉出该字符串
Create Table #links
(
link VarChar(200)
)
Insert Into #links Values
('''https://''website name''/''language''/''type of content''/''en_au''/''name of content'''),
('''https://''website name''/''language''/''type of content''/''fr_ca''/''name of content'''),
('''https://''website name''/''language''/''type of content''/''en_us''/''name of content''')
Query
Select SubString
(
link,
PatIndex('%type of content%',link)+17,
CharIndex('/',link,PatIndex('%type of content%',link)+17)-CharIndex('/',link,PatIndex('%type of content%',link))-1
)
As YourNewColumn
From #links
结果
YourNewColumn
'en_au'
'fr_ca'
'en_us'
我明白了。这是Sqlite的答案:
选择
substr(链接,instr(链接,'内容类型')+11,6)作为内容id
从df
示例数据中,您尝试了什么,期望的输出。如果我的帖子中不清楚,很抱歉,但我已经尝试了我粘贴在上面的代码(substr)。我想要的输出是从我上面发布的url链接示例中提取“content_id”。如果有意义的话,我更喜欢查找第5和第6个“/”之间的值的方法。可能类似于excel中的左函数或右函数。您可能会发现这个答案很有用:regexp
模式是。然后选择regexp\u replace(列,模式,'\1')。有没有办法创建一个新列而不是替换原始列?