Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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 SQL返回空的距离值_Php_Mysql_Sql_Coordinates - Fatal编程技术网

Php SQL返回空的距离值

Php SQL返回空的距离值,php,mysql,sql,coordinates,Php,Mysql,Sql,Coordinates,在下面的脚本中,我将返回基于纬度和经度坐标的距离。当my ui.userlat和ui.userlong与经过的纬度(-20.31225580)和经度(-40.30603010)相同时,就会出现问题,因为它返回空距离,因此不会产生SQL结果 PS:我正在使用MYSQL SELECT ui.id, pt.token, (6371 * acos(cos(radians(-20.299626)) * cos(radians(ui.userlat)) * cos( rad

在下面的脚本中,我将返回基于纬度和经度坐标的距离。当my ui.userlat和ui.userlong与经过的纬度(-20.31225580)和经度(-40.30603010)相同时,就会出现问题,因为它返回空距离,因此不会产生SQL结果

PS:我正在使用MYSQL

SELECT ui.id, pt.token, 
        (6371 * acos(cos(radians(-20.299626)) * cos(radians(ui.userlat))
        * cos( radians( ui.userlong ) - radians(-40.292269) ) +
        sin(radians(-20.299626) ) * sin(radians(ui.userlat)))) AS distance 
FROM user_info AS ui, push_tokens AS pt
WHERE pt.user_id = ui.id AND ui.tipoConta = 2 HAVING distance < 15 ORDER BY distance
选择ui.id,pt.token,
(6371*acos(cos(弧度(-20.299626))*cos(弧度(ui.userlat))
*cos(弧度(ui.userlong)-弧度(-40.292269))+
sin(弧度(-20.299626))*sin(弧度(ui.userlat)))作为距离
从用户信息作为用户界面,推送令牌作为pt
其中,pt.user_id=ui.id和ui.tipoConta=2,距离小于15个数量级
即使距离为0,如何使其返回值?
我曾尝试在SQL中将距离的默认值设置为0,但直到现在都没有成功

您使用的是什么DBMS?微软SQL,Oracle,mySQL?您应该能够将计算或列包装在
IsNull
NVL
或其他类似函数中,这些函数用您指定的值替换
NULL
值。如果所有其他操作都失败,您可以在以下情况下使用
案例进行检查。。。是空的,那么。。。其他的以距离结束
我认为当起点和终点相同时,Haversine公式不会崩溃。Tim Biegeleisen,它不会崩溃。它只返回nothing=)然后取
COALESCE(表达式,0)
,其中
expression
是哈弗森公式。我以前和哈弗森一起工作过,但我似乎不记得这个问题。也许我从来没有在非常小的距离使用过它。谢谢大家!我让它和COALESCE一起工作!您使用的是什么数据库管理系统?微软SQL,Oracle,mySQL?您应该能够将计算或列包装在
IsNull
NVL
或其他类似函数中,这些函数用您指定的值替换
NULL
值。如果所有其他操作都失败,您可以在以下情况下使用
案例进行检查。。。是空的,那么。。。其他的以距离结束
我认为当起点和终点相同时,Haversine公式不会崩溃。Tim Biegeleisen,它不会崩溃。它只返回nothing=)然后取
COALESCE(表达式,0)
,其中
expression
是哈弗森公式。我以前和哈弗森一起工作过,但我似乎不记得这个问题。也许我从来没有在非常小的距离使用过它。谢谢大家!我让它和COALESCE一起工作!