title: mySQL longitude and latitude query for other rows within x mile radius
body: <p>I have a database populated with roughly 10k rows currently. All of them have a longitude/latitude based on the center of a zipcode. I found a query that I am now attempting to expand on, but all in all it works well to a point. However, in my example below I am trying to find things within a 25 mile radius, which in all seems to work for the most part. Most of my results do yield within the 25 mile criteria, however I am getting a handful that are way off anything from 86 miles to 800 miles off the mark.</p>
  
  <p>Example:
  This is my center lat/lon: 37.2790669,-121.874722 = San Jose, CA
  Im getting results like: 33.016928,-116.846046 = San Diego, CA which is about 355 miles from San Jose.</p>
  
  <p>my current query looks like:</p>
  
  <pre><code>SELECT *,(((acos(sin(($lat*pi()/180)) * sin((`latitude`*pi()/180))+cos(($lat*pi()/180))
  * cos((`latitude`*pi()/180)) * cos((($lon - `longitude`)*pi()/180))))*180/pi())*60*1.1515)
  AS `distance` FROM `geo_locations` HAVING `distance` &lt;= 25 ORDER BY `distance` ASC"
  </code></pre>