我每隔3小时通过查询获取一次Twitter数据。其中一个字段url
是关键所在。对于每个网址,我都有retweet_count
值。
有时在接下来的3个小时内,我会获得与之前类似的网址记录。但是retweet_count
附带了更新的新值。
在每个查询中,我都会获得大约200个网址。
一种方法是在每次插入期间检查url
是否存在。如果没有,则直接插入。如果已经存在,则获取之前的rt_count
值并与较新的值进行比较,如果不同则更新它。
我的数据会逐渐增加到表中缺少的记录。如果上述情况需要太多延迟。
有没有更好的方法呢?对此有任何乐观的解决方案吗?
$insertQuery2 = "INSERT INTO frrole_article_sentiment (`url`, `sentiment`, `title` , `time` , `img_url` , `rt_count` , `tweet_count`, `today`, `youtube_url`, `hash`) VALUES ('".$url."','".$sentiment."','".$title."','".$time."','".$img_url."','".$rt_count."','".$tweet_count."','".$today."', '".$is_youtube."', '".$hash."')";
if (!mysqli_query($con,$insertQuery2))
{
//die('Error: ' . mysqli_error($con));
}
答案 0 :(得分:1)
由于您使用的是MySQL,因此可以使用ON DUPLICATE KEY UPDATE
功能:
http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html
您的查询将变为:
INSERT INTO frrole_article_sentiment (url, rt_count)
VALUES('$url', '$rt_count')
ON DUPLICATE KEY UPDATE rt_count=$rt_count;
(“url”假定为PK,为简单起见缩短了查询,你应该包含所有字段)