之前写附近信息的时候需要在数据库专门制定合适的算法,在网上也看了各位前辈的一些sql。
不过总觉得那些sql运行的结果不是很满意,精度不是很高,取得的数据与目的有差异。
所以自己写了一个,今天在这里分享出来。
SELECT *,(abs(#lng#-blng)*111 + abs(#lat#-blat)*111*abs(COS(#lat#-blat))) AS distance FROM address ORDER BY distance ASC
blng,blat为数据库存储的数据,#*#为传入数据。
取得的效果自己比较满意,由于本人SQL方面一般,所以取得的数据在符合预期的情况下也就没有进一步验证。
欢迎探讨交流。