2017-02-27 41 views
-2

我需要使用mySQL查詢來解析來自tweet字符串的轉推用戶名。如何使用mySQL解析字符串的Twitter用戶名?

場會是什麼樣子「RT @sampleuser:一些鳴叫文本,@useridonotwant更多的文本」

我需要回到只有「sampleuser」(填充與另一列)。這可以用mySQL完成嗎?

謝謝!

更新:根據要求,到目前爲止我發現的是,mySQL不提供通過正則表達式返回子字符串的方法。

我試圖用這個子溶液中發現here

SUBSTRING(
haystack, 
LOCATE('@', haystack) + CHAR_LENGTH('@'), 
LOCATE(
    ':', 
    haystack, 
    LOCATE('@', haystack) + CHAR_LENGTH('@') 
) 
- (LOCATE('@', haystack) + CHAR_LENGTH('@')) 
) as string 
FROM (SELECT FROM schema_name.table_name AS hastack) 

但是,返回1064:您在您的SQL語法錯誤。

+0

你爲什麼要去mysql。它會將過度工作分配給數據庫引擎 –

+0

@Fallenhero感謝您的反饋,我更新了包括迄今爲止我嘗試過的內容,但是,我不知道它是否在正確的軌道上。 –

+0

@SagarV那麼,我有一個現有的數據庫,沒有鏈接到任何我需要傳遞給團隊成員與添加列包含轉推用戶名。 –

回答

0

這個答案對於任何想要解析轉推用戶名的人來說都適用於這個特定情況,但我確定有一個更優雅的解決方案。

SELECT <column_name>, SUBSTRING(
    <column_name>, 
    LOCATE('@', <column_name>) + 1, 
    LOCATE(':', <column_name) - 1 - LOCATE('@', <column_name>) 
    ) 
    FROM <your_schema.your_table> 
    WHERE <condition>