0

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

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

我应该使用*还是更具体的东西?

4

2 回答 2

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也会这样做。

于 2013-08-14T04:48:00.537 回答
1

请参考以下链接。

MySQL:计算行数的最快方法

希望这对您有所帮助。

于 2013-08-14T04:54:55.430 回答