MySQL结合PHP cron作业SQL';把它合并到一个查询中是可能的吗?

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

我已经在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 ($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;

您可能想考虑一个触发器来保持汇总表中的计数,如果您希望它保持最新的。不过,这将是对系统此组件的重新设计。

这当然是可能的,但需要进行一些工作。一旦你找到了解决方案,一定要尽快发布。这当然是可能的,但需要努力。一旦你找到了解决方案,一定要尽快发布。