SQL-Lat/Lng距离查询-如果距离为0,则不返回任何内容
如果我输入的SQL-Lat/Lng距离查询-如果距离为0,则不返回任何内容,sql,mysql,database,geocoding,Sql,Mysql,Database,Geocoding,如果我输入的$latitude$longitude值恰好与数据库中存储的值匹配,则不会返回任何内容(例如搜索您自己)…我假设距离为0 我正在使用此查询: SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`lat`*pi()/180)) +cos((".$latitude."*pi()/180)) * cos((`lat`*pi()/180)) * cos(((".$longitude."- `lng`)*pi()/180))))*18
$latitude
$longitude
值恰好与数据库中存储的值匹配,则不会返回任何内容(例如搜索您自己)…我假设距离为0
我正在使用此查询:
SELECT *,
(((acos(sin((".$latitude."*pi()/180)) * sin((`lat`*pi()/180))
+cos((".$latitude."*pi()/180)) * cos((`lat`*pi()/180))
* cos(((".$longitude."- `lng`)*pi()/180))))*180/pi())*60*1.1515)
AS distance
FROM ...
LEFT JOIN ...
ON ...
WHERE 'cat_id' = '$cat_id'
HAVING distance <= $radius
ORDER BY distance ASC
选择*,
((acos(sin((“$latitude.”*pi()/180))*sin((`lat`*pi()/180))
+cos((“$latitude.”*pi()/180))*cos(`lat`*pi()/180))
*cos(((“$longitude.”-`lng`)*pi()/180))*180/pi())*60*1.1515)
作为距离
从…起
左连接。。。
在…上
其中'cat_id'='$cat_id'
HAVING distanceHAVING
子句正在终止输出。更改查询,使其条件成为的一部分,其中
:
...
WHERE 'cat_id' = '$cat_id' AND distance <= $radius
。。。
其中“cat_id”=“$cat_id”和距离如何更改查询,以便在距离为0时仍返回整个查询或其修改版本的行?我假设有一个在哪里
的条件?@Stephen-请看上面的更新,你应该发布整个事情。。。