SQL:将列中的特定文本提取到新列中

时间:2016-04-06 16:55:19

标签: mysql sql

我有一张推文表,其中有一个带有推文文本的文本列。 这些推文通常都有网址。我想提取网址,如果有一个新的列,所以我可以根据它进行查询。

示例:

text:                                               Url:
look at this cool picture someimagehost.com/abcd    someimagehost.com/abcd

我该怎么做?

我正在使用MySQL。

1 个答案:

答案 0 :(得分:0)

所以在搜索了几个小时后如何使用regexp并获得匹配的表达式并找不到任何内容我看到了使用字符串函数的建议。这是我提出的解决方案

UPDATE lsir_twitter_tweets as tweets
SET url = CASE WHEN LOCATE("http", tweets.text) = 0
THEN " "
WHEN LOCATE(" ", tweets.text, LOCATE("http", tweets.text)) = 0
THEN SUBSTRING(tweets.text, LOCATE("http", tweets.text))
ELSE SUBSTRING(tweets.text, LOCATE("http", tweets.text), LOCATE(" ", tweets.text, LOCATE("http", tweets.text)) - LOCATE("http", tweets.text))
END