我有以下的“鸣叫”表:寻找forrecords包含特定字符串
tweet_id user_id text
---------------------------------------------------
1 2 this is a tweet with (TAG} in it
2 2 tweet without a TAG
3 2 {TAG} another {TAG} tweet
4 4 look at my {TAG} and weep!
我想算,为每个用户,包含{TAG}
至少一次鸣叫的次数。标签可以在推文中的任何地方:在开始,中间或结束时(阅读:没有后面跟着空格或任何东西)。该表拥有数百万条记录,所以我正在寻找一种有效的方法来完成此操作。我第一次尝试是
SELECT COUNT(tweet_id) FROM tweets WHERE `text` LIKE '%{TAG}%' AND user_id = 2
但这返回0,而在这个例子中,它有望恢复2。所以两个问题:(一)我在做什么错误以及(ii)有没有更有效的方法去做这个?
[编辑]
我想结果插入到“用户”表:
user_id tweets_with_tag
2 2
3 0
4 9
是否有可能算在同一查询插入?
您希望将这些值插入“用户”表中的频率如何?也许你想使用[View](http://dev.mysql.com/doc/refman/5.0/en/create-view.html)而不是常规表? – mkk 2012-03-29 11:22:52
我有大约100.000个用户和几百万条推文。我只需要做一次 - 它用于研究静态数据集,而不是实时应用程序。 – Pr0no 2012-03-29 11:33:14