首页 > 解决方案 > MySql 选择计数直到找到某个值

问题描述

id  number my_id
 1    1     789  
 1    2     645
 1    3     222
 1    4     544
 1    5     155

使用简单的计数结果将等于 5

SELECT COUNT(id) AS count FROM table WHERE id = 1 

我如何计算直到找到某个值?

例如:count until my_id is '222' with count result = 3

谢谢!

标签: mysqlcount

解决方案


这取决于顺序,“直到 my_id 为 222”是什么意思?

您可以进行这样的查询(或相反),但这将使用该my_id字段来确定应该计算谁:

SELECT count(id) as count
FROM YourTable
WHERE id = 1 AND my_id <= 222

编辑:您的问题缺少一些重要信息,但也许您的意思是:

SELECT COUNT(t.id) as count
FROM YourTable t
WHERE t.id = 1
  AND t.number <= (SELECT number FROM YourTable s
                   WHERE s.id = 1 and S.my_id = 222)

此查询依赖于只有 1 条记录将匹配内部查询的事实。

SQLFiddle


推荐阅读