返回空而不是0

时间:2016-12-24 16:52:09

标签: mysql

我的mySQL查询似乎按照我的预期运行,返回距离地理坐标输入(由single$lat1表示)50英里内的$lat2人的计数。值lattitudelongitude来自我数据库中已有的值。

我现在唯一的问题是,假设没有人符合给定的标准,我希望计数器返回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是您在上面看到的代码。

2 个答案:

答案 0 :(得分:1)

你应该使用ifnull

  SELECT ifnull(COUNT(*), 0) as cnt,

答案 1 :(得分:1)

查询中可能存在错误,如果您将count(*)与另一个无聚合列一起使用,则应该给出group by缺少的内容。

相关问题