Я получаю данные Twitter по моему запросу каждые 3 часа. Одним из полей является url
. Для каждого URL у меня есть значение retweet_count
.Обновление данных таблицы оптимальным образом
Иногда в следующие 3 часа я получаю аналогичные записи URL-адресов, как и раньше. Но retweet_count
поставляется с обновленным новым значением.
В каждом запросе я получаю около 200 URL-адресов.
Один из способов во время каждой вставки я проверяю, существует или нет 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));
}
Ваш вопрос трудно понять. Это правда: каждые 3 часа вы выполняете запрос MySQL, а в результирующем наборе есть как минимум 2 поля: 'URL' и' retweet_count'? _ (Если это так, поделитесь запросом) _ Затем через 3 часа вы запустите тот же запрос, и иногда возвращается такое же поле 'URL', но с другим значением' retweet_count'. Вы хотите вставить в ** frrole_article_sentiment **, когда строка в наборе результатов, которую вы только что запросили, имеет значение «URL», которое не находится в ** frrole_article_sentiment **. Если это значение 'URL' есть, то обновите его? – AgRizzo