答案 0 :(得分:1)
你应该在OP中详细说明你的逻辑,而不是上面的评论,这将有所帮助,在这里你可以尝试跟踪sql并检查它是否是你想要的:
SELECT
MAX(@cnt := CASE WHEN one = 1 THEN @cnt + 1 ELSE 0 END) AS maxCount
FROM yourtable
CROSS JOIN ( SELECT @cnt := 0 ) t
WHERE `position` = 2
ORDER BY id
您也可以查看SQLFiddle Demo。
答案 1 :(得分:0)
如果要对它们求和,请使用SUM
函数。
SELECT SUM(one) FROM table WHERE position = 2;
否则,如果仅计算使用COUNT
函数。
SELECT COUNT(*) FROM table WHERE position = 2 AND one = 1
如果你想要一个运行计数,在你的程序中执行它,你要求数据库做一些真正属于你加载这些记录的循环。