mysql - 返回空而不是0

原文 标签 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是上面看到的代码。

最佳答案

你应该使用ifnull

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

关于mysql - 返回空而不是0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41315178/

相关文章:

php - 如何在单个字段中插入数组

php - 使用 CodeIgniter 的 Active Record 将 NOW() 插入数据库

mysql - 如何在Mysql中找到给定年份的星期开始和结束日期

python - 名称错误 : global name 'message' is not defined

mysql - MySQL-用SQL重新排列列值

php - 谷歌地图未显示在 PHP/MySQL 页面中

mysql - 关于mysql的IN和NOT IN的危险

java - 多次使用`java.sql.CallableStatement`而不关闭它

mysql - 双重分组

php - 如何选择按Date(Timestapms)分组的所有时间戳PHP/MYSQL