mysql选择count直到找到某个值

mlmc2os5  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(246)
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 \u id is'222',count result=3
谢谢您!

gv8xihay

gv8xihay1#

假设数字已排序

select count(*) from t where `number`<=(select `number` from t where my_id=222)
qxgroojn

qxgroojn2#

那要看顺序,你说的“直到我的身份证是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公司

相关问题