sql - 需要帮助从SQLite中的URL链接中提取值

标签 sql sqlite

我正在使用用于SQLite的数据库浏览器。

我有一个名为“ df”的表,以及一列包含一堆名为“ links”的URL链接的列。所有链接均来自同一网站,并采用相同的结构化格式:

https://“网站名称” /“语言” /“内容类型” /“内容ID” /“内容名称”

语言的几个例子:
1. en_au
2. fr_ca
3. zh_
等等..

链接的“内容类型”部分中也只有一个唯一值。

目标:
我需要帮助从链接中提取所有内容ID。

我已经尝试过正则表达式,但这会拉出与正则表达式匹配的所有信息,而不是内容ID。我还使用了substr函数(请参见下面的代码),但这会引起一些问题:
1.有些链接的开头不是“ www”。
2.并非所有的内容ID都具有相同的字符长度。
3.并非所有的语言ID都具有相同的字符长度。

SELECT
    substr(links, 36, instr(links, '/') +1) AS content_id
FROM df

最佳答案

字符串操作?我将字符串'Type of content'与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'

关于sql - 需要帮助从SQLite中的URL链接中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57116529/

相关文章:

java - MyBatis 执行获取并基于返回值在 Xxxmapper.xml 中执行更新/插入?

objective-c - 正确使用核心数据来多次访问数据 - iphone/ipad

sql - 小数的SSIS数据转换问题

SQL Server 2008 分区表和并行性

sql - 查询在客户端应用程序中需要很长时间,但在 SQL Server Management Studio 中很快

android - 将值传递给 arraylist 时,sqlite 表最后一行重复

android - 查看 SQLite 数据库内容

mysql - 创建具有特定字段参数的表

ruby-on-rails - rails 4 many to many through join model, undefined method 'name' for :NilClass, sqlite3

sqlite - 在 Tcl 列表中将元素用单引号括起来以进行 sqlite 插入