2016-04-06 37 views
0

我需要幫助來實現在結果的最後10行中有多少狀態= 1?計算最近10行中有多少匹配

如果在最後10行中有3個狀態,我需要3個輸出。

SELECT * FROM results WHERE $position='$text' and make='$make' and status='1' 
+0

你如何確定什麼是 「持續多久?」 –

+0

'SELECT * FROM results WHERE ... id>(SELECT max(id) - 10 FROM results)AS x'?假設一個序列號列。 –

+0

所有結果都有自動增量編號 所以最後10位身份證巫婆有狀態1我嘗試過,但總是得到10次輸出 – user3307783

回答

3

您需要使用子查詢得到最後10行,然後指望有多少在該子集有status = 1

SELECT COUNT(*) AS count 
FROM (SELECT status 
     FROM results 
     WHERE $position = '$text' AND make = '$make' 
     ORDER BY id DESC 
     LIMIT 10) AS last10 
WHERE status = '1' 

DEMO

+0

我總是得到結果1.但在過去的10行中,我有6場比賽 – user3307783

+0

我已經添加了一個sqlfiddle演示表明它的工作原理。 – Barmar

+0

你正在使用'$ row ['count'']'來計數,而不是'mysql_num_rows()',對嗎? – Barmar