我将通过此查询计算返回的行:
select * from tableName where( number > 1000);
我尝试过此查询以获取行数:
select count(*) as count from (select * from tableName where( number > 1000));
但是我遇到了语法错误。这有什么问题?
答案 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;