2011-02-14 22 views
0

任何人都可以幫助我找到方法來計算運行查詢時找到的行數。我想在存儲過程中運行此查詢,具體取決於我想要執行某些操作的計數。 我試圖設置變量值的東西。在mysql中查找不使用count()的行數

Select abc_master_id, 
     abc_name, 
     abc_parent_id, 
     (@row := @row +1) rownum 
from abc_master 
where blah.. blah.. limit 18,9 

上面的查詢是完全錯誤的。但在這裏,我想計數或設置一些標誌,記錄發現小於或等於極限設置爲查詢,即在這裏9.通過這樣做,我將保存一個查詢來計算查詢獲取的行。

我已經嘗試過使用SQL_CALC_FOUND_ROWS和Found_rows(),但是如果查詢無限制地運行,它會給我總的行數。

回答

3

解決辦法:

SELECT abc_master_id, 
     abc_name, 
     abc_parent_id, 
     @i:[email protected]+1 AS rownum 
FROM abc_master ,(SELECT @i:=0) foo 
where blah.. blah.. limit 18,9 
1

有一個類似

Select count(*) 
from abc_master where blah.. blah.. 

更換您的查詢,並獲取第一行。因此

select count(*) from (
Select abc_master_id, abc_name, abc_parent_id ... from abc_master 
where blah.. blah..) 

MySQL已經過去幾年有所改善,但我不知道,如果你的引擎支持更簡單的子查詢您的原始查詢,但沒有限制條款,括號之間。