计算mysql中所选数据的行数

时间:2014-08-25 04:53:52

标签: mysql sql

我将通过此查询计算返回的行:

 select * from tableName where( number > 1000);

我尝试过此查询以获取行数:

 select count(*) as count from (select * from tableName where( number > 1000));

但是我遇到了语法错误。这有什么问题?

8 个答案:

答案 0 :(得分:4)

你不想要嵌套查询只需使用

select count(*) as count from tableName where number > 1000 ;

答案 1 :(得分:2)

如果您使用嵌套查询&不要使用'count'作为临时变量名称:

select count(temp.id) as num from (select * from tableName where number > 1000) temp

答案 2 :(得分:1)

应该是这样的

select count(*) as noOfCount from tableName where number > 1000;

不要使用sql保留关键字作为临时变量名称

答案 3 :(得分:1)

为什么不直接选择1中的行数:

select count(*) from tableName where number>1000;

答案 4 :(得分:1)

简单。不需要子查询

select count(*) as count from tableName where number > 1000;

答案 5 :(得分:0)

可能,你得到的语法错误是“每个派生表都必须有一个别名”。

要修复该语法错误,您只需为内联视图查询指定别名。

SELECT foo FROM (SELECT foo FROM bar) a ;
                                      ^

但是对于您的特定查询,不需要内联视图。

您可以简单地修改原始查询,将SELECT列表中的*替换为聚合表达式,例如COUNT(*)。您还可以为聚合表达式指定别名。

使用COUNT作为列别名是有效的,但我的偏好是使用不同的别名,一个不是MySQL函数的名称。

答案 6 :(得分:0)

第一件事

SELECT COUNT(*) as tot_rows FROM `tableName` WHERE  `number` > 1000 ;

你最好给出倾斜(`)符号号码,因为可能在mysql中有一个名为number的关键字。我不太确定,但你应该采取预防措施。

其次你也可以做另一件事。

如果您使用的是PHP

$query_result = mysql_query("SELECT * FROM `tableName` WHERE  `number` > 1000");

$num_row = mysql_numrows($query_result);

答案 7 :(得分:0)

此查询正常

从tableName中选择count(*)作为count,其中number> 1000;

但是你的查询错误中的FYR是你没有在示例中定义子查询名称它的tbl

选择count(*)作为计数从(select * from tableName where(number> 1000))tbl;