Mysql 忽略不使用子查询的零值计数

Mysql 忽略不使用子查询的零值计数,mysql,sql,Mysql,Sql,当我运行此查询时 select id , ( select count(*) .... ) as c from Foo where c > 0 order by c desc 我得到了错误1054(42S22):“where子句”中的未知列“c” 那么,如何通过子查询忽略零值计数呢?试试以下方法: select * from ( select id, (select count(*)... ) as c from Foo ) x where

当我运行此查询时

select id , ( select count(*) .... ) as c
     from Foo
        where c > 0
        order by c desc
我得到了
错误1054(42S22):“where子句”中的未知列“c”

那么,如何通过子查询忽略零值计数呢?

试试以下方法:

select * from (
  select id, (select count(*)... ) as c from Foo
) x 
where c > 0
order by c desc
试试这个:

select * from (
  select id, (select count(*)... ) as c from Foo
) x 
where c > 0
order by c desc
标准SQL不允许在WHERE子句中引用列别名。施加此限制是因为在计算WHERE子句时,可能尚未确定列值

无论如何:

可以在GROUP BY、ORDER BY或HAVING子句中使用别名来引用列

标准SQL不允许在WHERE子句中引用列别名。施加此限制是因为在计算WHERE子句时,可能尚未确定列值

无论如何:

可以在GROUP BY、ORDER BY或HAVING子句中使用别名来引用列


不允许在WHERE子句中引用列别名,因为在执行WHERE子句时可能尚未确定列值。谢谢@juergend,但是我如何可以忽略零值计数?您查询它的方式count将始终为一。请发布您的表结构并解释您希望获得的计数。不允许在WHERE子句中引用列别名,因为在执行WHERE子句时可能尚未确定列值。谢谢@juergend,但我如何可以忽略零值计数?您查询它的方式始终是一。请张贴您的表格结构,并解释您希望获得的数量