【问题标题】:SQL: Select from Database up to a number (size)SQL:从数据库中选择最多一个数字(大小)
【发布时间】:2016-07-29 12:19:54
【问题描述】:

我想选择不超过一定数量(大小)的行。 我的 SQL (SQL Fiddle):

id  user_id     storage
1   1           1983349
2   1           42552
3   1           367225
4   1           1357899
37  1           9314493

我只想选择不超过特定数量(大小)的所有行。 像这里这样:

Select * from uploads where storage < 410000

这里应该是这样的:

id  user_id     storage
2   1           42552
3   1           367225

ID '2' 和 '3' 的摘要是 409777。

【问题讨论】:

  • 那么你想要结果的 SUM() 吗?
  • 不,我想将行拆分到一定数量
  • 不清楚你想要什么!

标签: php mysql sql select


【解决方案1】:

您需要某种方法来获得累积总和。在 MySQL 中,最简单的方法是使用变量:

select u.*
from (select u.*, (@s := @s + storage) as cume_storage
      from uploads u cross join (select @s := 0) params
      order by id
     ) u
where cume_storage < 410000;

【讨论】:

  • @gordon-linoff 你能解释一下吗?
  • @CrookieSusoku 。 . .它工作正常。这是您的 SQL Fiddle,具有更合理的阈值:sqlfiddle.com/#!9/eaed9/33
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-03
  • 2012-12-22
  • 2017-11-04
  • 1970-01-01
  • 2010-10-15
  • 2011-06-23
  • 1970-01-01
相关资源
最近更新 更多