Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算mysql中选定数据的行数_Mysql_Sql - Fatal编程技术网

计算mysql中选定数据的行数

计算mysql中选定数据的行数,mysql,sql,Mysql,Sql,我将通过此查询计算返回的行数: select * from tableName where( number > 1000); 我尝试此查询以获取行数: select count(*) as count from (select * from tableName where( number > 1000)); 但我有语法错误。这有什么问题吗?应该是这样的 select count(*) as noOfCount from tableName where number >

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

 select * from tableName where( number > 1000);
我尝试此查询以获取行数:

 select count(*) as count from (select * from tableName where( number > 1000));
但我有语法错误。这有什么问题吗?

应该是这样的

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

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

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

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

简单点。不需要子查询

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

您不需要嵌套查询,只需使用

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

如果使用嵌套查询,则此操作有效&不要将“count”用作临时变量名:

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

很可能,您得到的语法错误是每个派生表都必须有别名

要修复该语法错误,只需为内联视图查询分配一个别名

SELECT foo FROM (SELECT foo FROM bar) a ;
                                      ^
但是对于您的特定查询,不需要内联视图

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

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

首先

SELECT COUNT(*) as tot_rows FROM `tableName` WHERE  `number` > 1000 ;
您最好返回tilt`sign arond number,因为mysql中可能有一个名为number的关键字。我不太确定,但你应该采取预防措施

其次,你还可以做另一件事

如果您使用的是PHP,那么

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

$num_row = mysql_numrows($query_result);
这个查询很好用

选择count*作为tableName中的count,其中number>1000

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


从select*from tableName中选择count*作为计数,其中数字>1000作为tbl

删除为count或使用与count as cont不同的关键字从tableName中选择count*as cnt,其中number>1000;您不需要执行嵌套查询。您可以通过删除该选项来获得所需的结果。只需将您的条件放在where子句number>1000中,使用sql保留字计数为notrecommended@ThusithaThilinaDayaratne:只是澄清一下:COUNT不是MySQL保留字。我的首选是避免将其用作列别名,因为它确实与MySQL函数的名称匹配;但使用COUNT作为列别名是有效的。据我所知,COUNT是一个函数,而不是一个关键字。有一些保留字我曾经遇到过问题日期。