2011-03-30 64 views

回答

3
SELECT COUNT(*) FROM tablename 

這將算表中的「表名」

欲瞭解更多信息行/條目的數量,檢查了手冊: http://dev.mysql.com/doc/refman/5.1/en/counting-rows.html

[編輯]肯白建議您當然可以通過添加WHERE子句來縮小結果記錄集

+0

+1。除此之外,您還可以使用WHERE子句進行限定:'SELECT COUNT(*)FROM tablename WHERE SomeCondition' – 2011-03-30 19:02:51

2

鑑於任何查詢

select .. 
from .. multiple .. 
where .. group by.. order by.. 
limit .. 

把它包在一個子查詢,和COUNT(*)在它

select count(*) from (

select .. 
from .. multiple .. 
where .. group by.. order by.. 
limit .. 

) X 

) X位是給它一個別名,所要求的語法。當然,如果您的原始查詢以;結尾,請將其從子查詢中刪除。

+0

嗯...爲什麼要在一對查詢中進行單個查詢,只需執行在count()查詢本身過濾?試試兩個,並看看他們的計劃。 (不是低調投票,因爲它在技術上是正確的,但它不是一個好主意IMO)。 – 2011-03-30 21:49:00

+0

@Ken - 這是一個普遍的方法。考慮一個以'SELECT a,b,sum(c),min(D).... group by a,b'開始的複雜查詢 - 你在這裏放置COUNT(*)'?在FYI中,mysql_num_rows適用於任何查詢,因此是匹配的一般化答案。 – RichardTheKiwi 2011-03-30 22:00:26

+0

@Ken:有些查詢可能不容易更改,因此計數是在查詢本身完成的。我猜如果它們對於子查詢來說非常複雜,或者用DISTINCT。我相信理查德可以提供一個例子。 – 2011-03-30 22:04:02

相關問題