我有一張表,其中存儲了許多Twitter推文的信息,包括推文文本和推文推文用戶的屏幕名稱。該tweet中包含主題標籤(以#開始),我要算一個特定的用戶在推特主題標籤的數量:計算MySQL列中子字符串的出現次數
tweet_id | tweet_text | screen_name |
--------------------------------------------------------------------------------------------
1 | #hashtag1 #otherhashtag2 #hashtag3 some more text | tweeter_user_1 |
2 | some text #hashtag1 #hashtag4 more text | tweeter_user_2 |
3 | #hashtag5 #hashtag1 @not a hashtag some#nothashtag | tweeter_user_1 |
4 | #hashtag1 with more text | tweeter_user_3 |
5 | #otherhashtag2 #hashtag3,#hashtag4 more text | tweeter_user_1 |
如果我算tweeter_user_1的主題標籤,結果我想到的是8,如果我想tweeter_user_3的標籤應該返回1.我怎麼能這樣做,假設我的表名是推文。
我嘗試這樣做:SELECT COUNT(*) FROM tweets WHERE(LENGTH(REPLACE(tweet_text, '#%', '@') = 0)) AND screen_name = 'tweeter_user_1'
但它沒有工作
我會很高興,如果tweeter_user_1的結果是9太:d
如果這是你想要的'主題標籤number',則是這樣的:'SELECT SUM(長度(tweet_text) - 長(REPLACE(tweet_text, '#', '')))FROM推文WHERE screen_name ='tweeter_user_1''應該可以工作。 – dash
事實上,如果可能的話,你會遇到困難的時候不匹配一些#nothashtag#JYelton的建議是一個好的 - 預先存儲 - 它永遠不會改變。 – dash
是的,這就是爲什麼我更新了「沒關係,如果我得到了9的計數」這個帖子,JYelton的想法非常好,但是桌子已經很大了,我只需要這個腳本來計算一個人的hashtags的數量我們檢測到濫用系統。此外,申請將在3或4周內結束。 – Tales