我需要一些建议来改变我的sql

时间:2015-11-03 07:06:15

标签: mysql

SELECT *,round(6378.138*2*asin(sqrt(pow(sin( (lat*pi()/180-0*pi()/180)/2),2)+cos(lat*pi()/180)*cos(0*pi()/180)* pow(sin( (lng*pi()/180-0*pi()/180)/2),2)))*1000) AS juli    
            FROM `institution` a 
            WHERE round(6378.138*2*asin(sqrt(pow(sin( (lat*pi()/180-0*pi()/180)/2),2)+cos(lat*pi()/180)*cos(0*pi()/180)* pow(sin( (lng*pi()/180-0*pi()/180)/2),2)))*1000)<1000000
            ORDER BY juli ASC
            LIMIT 10

我觉得这很糟糕。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我认为它看起来不错,但不需要ASC只使用: -

ORDER BY juli 

答案 1 :(得分:0)

您有很多0*x次操作,显然没有任何贡献。我先把这些简化出来。此外,您似乎正在做很多deg->rad转换,这些转换可能只是通过将数据存储在弧度中来改进。