mysql查询问题和优化成一个查询

时间:2019-01-25 15:01:27

标签: php 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而不是php 因此,如果我有100个用户,它将计算出每个排名,并更新另一个名为current_rank的字段,如果有人可以帮助我,那么可以在一个查询中完成所有操作。

2 个答案:

答案 0 :(得分:1)

您只需要用所需的值替换('$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());

答案 1 :(得分:0)

弄清楚该如何做,必须做两个查询,而不是像我想要的那样;)感谢您的帮助