我有一个表,其中有一列名为itemCount
,我想选择前 n 行,而SUM(itemCount)
小于y
.
+----+-----------+
| id | itemCount |
+----+-----------+
| 1 | 5 |
| 2 | 10 |
| 3 | 1 |
| 4 | 20 |
+----+-----------+
可以这么说y=15
,在这种情况下,我想要前 2 行,SUM(itemCount)<=15
我需要这样的东西:
SELECT * FROM `tbl_mail_queue` LIMIT 0,(select count(id) from `tbl_mail_queue` m where SUM(m.`count`)<=15)
这可能吗?
更新:
我正在创建一个电子邮件队列系统,我的系统发送的每封电子邮件都存储在此表中。每封电子邮件可以有多个收件人,我不想将每个电子邮件行分解为一个收件人(发送的模块之一电子邮件是时事通讯,每封邮件可以有几十个甚至几百个收件人,我只将它们分成 50 个收件人堆栈)所以在我的电子邮件表中,我有一列告诉我该电子邮件有多少个收件人。
所以每一行的计数列可以有一个从 1 到 50 的值,现在我想每隔几分钟发送 50 封电子邮件,这里我需要这个查询来选择可以包含在 1 行或更多(n)行中的前 50 封电子邮件。