2010-12-21 138 views
2
$sql ="select * from user limit 5"; 

有沒有什麼辦法可以得到有限數量的結果,但總結果沒有限制。用一個查詢得到兩個查詢的結果 - mysql

基本上我想在一個單一的查詢下面的兩個查詢的結果。

query 1 : select count(*) from user 
query 2 : select * from user LIMIT 5 

是否有可能沒有任何子查詢?

+0

COUNT()是一個聚合函數。這意味着它合併行。我認爲這是不可能的。 – jwueller 2010-12-21 11:20:09

+0

cmon人聯合! – Matt 2010-12-21 11:33:02

回答

0

如何像

select *, 
     (select count(*) from user) TotalUsers 
from user 
LIMIT 5 

或許

select user.*, 
     TotalUsers.TotalCnt 
from user, 
     (select count(*) TotalCnt from user) TotalUsers 
LIMIT 5 
+0

有沒有什麼辦法可以消除這些子查詢?這可以在一個單一的查詢中完成嗎? – Avinash 2010-12-21 11:23:03

+0

不是我所知道的。 – 2010-12-21 11:24:19

1
select *, '' as total from user limit 5 
UNION 
select *,count(*) as total from user group by id>0 
+0

編輯,像這樣 – Matt 2010-12-21 11:26:04

+0

select * from用戶限制5 union select count(*)from total 我試過這個,但給錯誤.....有什麼不對嗎? – Avinash 2010-12-21 11:26:45

+0

確保它的'union select *,count(*)'不只是'union select count(*)' – Matt 2010-12-21 11:31:39

0

這是一個常見的問題,並且據我知道,它不過是不可能的..堅持兩個查詢,速度快,清晰。

0

單查詢不可能的,如果沒有加入或聯合,但是,你可以嘗試像

select sql_calc_found_rows * from user limit 5; 
select found_rows(); <-- total from first query 
相關問題