Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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
Php COUNT()正在选择表中的行数_Php_Mysql_Count - Fatal编程技术网

Php COUNT()正在选择表中的行数

Php COUNT()正在选择表中的行数,php,mysql,count,Php,Mysql,Count,下面查询中的MyCOUNT(*)正在选择表users中的行数计数,而不是distance小于50的行数 请告诉我为什么查询选择表users中的行数,而不是距离小于50的行数 提前谢谢 SELECT COUNT(*), ( 6371 * ACOS( COS( RADIANS( 51.61050836267012 ) ) * COS( RADIANS( latitude ) ) * COS( RADIANS( longitude ) - RADIANS( - 0.23701071739196777

下面查询中的My
COUNT(*)
正在选择表
users
中的行数计数,而不是
distance
小于50的行数

请告诉我为什么查询选择表
users
中的行数,而不是距离小于50的行数

提前谢谢

SELECT COUNT(*), ( 6371 * ACOS( COS( RADIANS( 51.61050836267012 ) ) * COS( RADIANS( latitude ) ) * COS( RADIANS( longitude ) - RADIANS( - 0.23701071739196777 ) ) + SIN( RADIANS( 51.61050836267012 ) ) * SIN( RADIANS( latitude ) ) ) ) 
AS distance
FROM  `users` 
AS `u`
HAVING distance <=50
选择计数(*),(6371*ACOS(弧度(51.61050836267012))*COS(弧度(纬度))*COS(弧度(经度)-弧度(-0.23701071739196777))+SIN(弧度(51.61050836267012))*SIN(弧度(纬度)))
作为距离
来自“用户”
作为“你”`

有距离
应通过
表达与
组相关。要将行数限制为给定的标准,请使用
,其中距离
具有
对聚合值起作用(例如总和(列)具有特定条件)
在您的情况下,应该使用
WHERE
而不是
HAVING

HAVING子句不会像count函数的WHERE子句那样对行进行过滤。尝试改用子查询。

您遇到了什么错误?或者您的结果如何不正确?计数(*)返回的是15行,而不是距离为
distance
的行数不是表
users
中的字段名,它只是从(6371*acos(..)函数生成的值是,但是您已经将它用作第二个投影元素的别名,您可以在
WHERE
clausePHPMyAdmin中引用它,但它似乎不同意:
WHERE子句中的未知列“distance”
它不允许我在WHERE子句中使用
distance
,因为它不是字段名