如何在一定范围内搜索地理对象?例如,我的数据库中存储了几个带有经度/纬度坐标的对象。现在,我想检索位于给定点周围特定周长(10英里或20英里)内的所有对象。
我想我要做的是形成一些查询,如下所示:
SELECT * FROM objects o where o.lat < (myPositionLat+x) AND o.lon < (myPositionLon+y)
是这样的吗?如何确定/设置x和y的值?
在发布这个问题之前,我尝试在网上进行了大量的研究。我在同一个linux服务器上有两个mysql数据库。每个数据库都有一个不同的登录id。我需要执行mysql查询,同时使用它们的特定登录ids来查询这两个数据库。我知道可以通过PHP或某些其他工具进行查询,但是如何在标准mysql客户机本身中提出这样的查询呢?
例如,考虑两个具有相同模式的数据库--如果相同的登录id对数据库DB1和DB2都有权限,那么下面的内容就可以了:
使用DB1;从table1中选择* not in (从DB2.table 1中选择xxx );
如果每个数据库的登录is不同,我不确定如何修改此查询。
我最近说过,我正在研究gps地图。我有一个包含经度和经度列表的数据库。当用户访问我的web应用程序时,我希望显示距离用户点1公里或指定半径的地点。我尝试使用mysql查询
SELECT * FROM位置
WHERE (latitude between MINLATITUDE and MAXLATITUDE )
and (longitude between MINLONGITUDE and MAXLONGITUDE)
但它显示最小和最大之间的经度和经度,谁能告诉我如何显示距离用户半径只有1公里的经度和经度。
谢谢。
如何确保从mysql数据库中提取的数据在Mssql和SSIS中被识别?我正在从Linux机器上的Mysql数据库中提取记录,并将这些记录存储在MSSQL数据库中。当我从相同的记录中获取主键以与MSSQL数据库表中已有的记录进行比较时。sql或SSIS无法比较现有记录。例如,PK Column1 (来自Mysql上的Linux ) Table1 QT1蓝色QT2绿色
PK Column1( Windows MSSQL) Table2 QT1蓝色QT2绿色
当我拉取相同的记录并进行比较时,sql显示这些记录似乎不存在或不存在。语句如下Select * from table2 where PK NO