计算查询的记录

时间:2013-08-14 04:36:39

标签: mysql sql

我需要做的就是计算与此查询匹配的所有记录...这是我需要的唯一信息..是记录的数量......最有效的方法是什么?

SELECT id, country, city
FROM sales
WHERE country='Germany'
AND city='Munich'
AND closed<>0

我的意思是,我认为这是正确的,但有更有效的方法吗?我经常会运行这个计数查询......

SELECT COUNT(*)  
FROM sales
WHERE country='Germany'
AND city='Munich'
AND closed<>0

我应该使用*还是更具体的内容?

2 个答案:

答案 0 :(得分:2)

如果您还需要为记录计数计算Null值,则使用count(*)或忽略要计算的Null值然后使用count()。

DECLARE @AA AS TABLE (ID INT, NAME VARCHAR(10))

INSERT INTO @AA VALUES(1,NULL)
INSERT INTO @AA VALUES(2,'A')
INSERT INTO @AA VALUES(3,'B')
INSERT INTO @AA VALUES(4,'C')

SELECT * FROM @AA

SELECT COUNT(*) FROM @AA

SELECT COUNT(NAME) FROM @AA

当您执行上述查询时,您会发现@AA表中将有四条记录,但如果您使用COUNT(*),如果结果为4,如果您使用COUNT(NAME),则结果为3此示例适用于SQL Server,但mysql也会这样做。

答案 1 :(得分:1)

请参阅以下链接。

MySQL: Fastest way to count number of rows

希望这会对你有所帮助。