我的mySQL查询似乎按照我的预期运行,返回距离地理坐标输入(由single
和$lat1
表示)50英里内的$lat2
人的计数。值lattitude
和longitude
来自我数据库中已有的值。
我现在唯一的问题是,假设没有人符合给定的标准,我希望计数器返回0.相反,我得到一个空响应。
SELECT
COUNT(*) as cnt,
(3959 *
acos(
cos(radians({$lat1}))
* cos(radians(lattitude))
* cos(radians(longitude) - radians({$lon1}))
+ sin(radians({$lat1}))
* sin(radians(lattitude))
)
) AS distance
FROM members WHERE status = 'single' HAVING distance < 50
如果它很重要,我会通过$row = mysqli_fetch_assoc($query);
获取我的数据,其中$query
是您在上面看到的代码。
答案 0 :(得分:1)
你应该使用ifnull
SELECT ifnull(COUNT(*), 0) as cnt,
答案 1 :(得分:1)
查询中可能存在错误,如果您将count(*)
与另一个无聚合列一起使用,则应该给出group by
缺少的内容。