2011-03-30 63 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

相关问题