比较从最旧列开始的列值,直到它们的总和等于数字

时间:2014-07-30 23:14:18

标签: mysql sql mysqli

我用它来查询我的数据库并将结果放入数组

$otheruserbalquery = "SELECT * FROM balance_down WHERE user_id = '$other_user_id' ORDER BY charge_date ASC";
$otheruserbalres = mysqli_query ($dbc, $otheruserbalquery) or trigger_error("Query: $otheruserbalquery\n<br />MySQL Error: " . mysqli_error($dbc));

$rows = array();
while($row2 = $otheruserbalres->fetch_assoc()) {
    $rows[] = $row2;
}
return $rows;

我需要考虑&#39; charge_date&#39;的值。列,从最低&#39; id&#39;开头。列值并添加它们直到它们的总和等于我给出的数字(例如50)。然后我需要更新数据库中的那些行。\

我知道这真的很复杂(至少对我而言),但我真的需要帮助。感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用用户定义的变量获得正在运行的id总数。把它放在一个子查询中,得到一个&lt; = 50:

select a.*
from (
  select a.*, @total := @total + a.id total
  from balance_down a
  join (select @total := 0) b
  where user_id = '$other_user_id'
  order by a.charge_date asc) a
where a.total <= 50;