首页 > 解决方案 > mysql查询和优化问题合并为一个查询

问题描述

我有一个查询,根据用户的操作确定用户排名

$db->row("SELECT COUNT(ID) as `user_rank` FROM userdetails WHERE (userdetails.totalaction /4) >= ('$user_detailed->totalaction' /4) AND active = 1 AND frozen = 0",array());

以上将返回那里的排名,我想进行一次查询以一次更新所有用户。

基本上我希望在>= ('$user_detailed->totalaction' /4)查询中成为纯 sql no php,所以如果我有 100 个用户,它将计算出每个排名并更新另一个名为current_rank的字段是否可以在一个查询中完成所有这些如果有人可以帮助我。

标签: phpmysql

解决方案


您只需('$user_detailed->totalaction' /4)用您想要的值替换即可进行测试。例如,如果您希望它大于等于 10,那么它应该是:

$db->row("SELECT COUNT(ID) as `user_rank` FROM userdetails WHERE (userdetails.totalaction /4) >= 10 AND active = 1 AND frozen = 0",array());

推荐阅读