MySQL结合PHP cron作业SQL';把它合并到一个查询中是可能的吗?
我已经在php cron作业上运行了以下php脚本。我想知道我是否有可能在一个MySQL查询中动态地做同样的事情MySQL结合PHP cron作业SQL';把它合并到一个查询中是可能的吗?,php,mysql,cron,Php,Mysql,Cron,我已经在php cron作业上运行了以下php脚本。我想知道我是否有可能在一个MySQL查询中动态地做同样的事情 $sql = "SELECT COUNT(`user_to`) AS fav_count , user_to FROM `users_favorite` WHERE 1 GROUP BY `user_to` "; $result = mysql_query($sql, $db) or die("Error in query:" . mysql_error()); while ($r
$sql = "SELECT COUNT(`user_to`) AS fav_count , user_to FROM `users_favorite` WHERE 1 GROUP BY `user_to` ";
$result = mysql_query($sql, $db) or die("Error in query:" . mysql_error());
while ($row = mysql_fetch_array($result)) {
$fav_count = $row['fav_count'];
$user_id = $row['user_to'];
$sql1 = "UPDATE user SET fav_count='" . $fav_count . "'
WHERE user_id=" . $user_id . " ";
$result1 = mysql_query($sql1, $db) or die("Error in query:" . mysql_error());
}
您可以将单个
更新
与加入
一起用于此:
UPDATE user u JOIN
(SELECT COUNT(`user_to`) AS fav_count, user_to
FROM `users_favorite`
GROUP BY `user_to`
) uf
ON uf.user_to = u.user_id
set u.fav_count = uf.fav_count;
您可能想考虑一个触发器来保持汇总表中的计数,如果您希望它保持最新的。但是,这将是对您系统的此组件的重新设计。
您可以使用单个更新和加入:
UPDATE user u JOIN
(SELECT COUNT(`user_to`) AS fav_count, user_to
FROM `users_favorite`
GROUP BY `user_to`
) uf
ON uf.user_to = u.user_id
set u.fav_count = uf.fav_count;
您可能想考虑一个触发器来保持汇总表中的计数,如果您希望它保持最新的。不过,这将是对系统此组件的重新设计。
这当然是可能的,但需要进行一些工作。一旦你找到了解决方案,一定要尽快发布。这当然是可能的,但需要努力。一旦你找到了解决方案,一定要尽快发布。