Search code examples
mysqlmysql-error-1064

I just got an Error Syntax near in a query


I have an error inside MySQL query but I can't figure out what is it

The Error is

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sin( radians(30.9006547) ) * sin( radians(lat itude) ) ) ,8) as distance FROM ' at line 3

Query is

SELECT h.*
     , ROUND(1.609344 * 3956 * acos( cos( radians(30.9006547) ) * cos( radians(latitude) ) * 
cos( radians(longitude) - radians(30.8524007) ) sin( radians(30.9006547) ) * sin( radians(latitude) ) ) ,8) as distance 
  FROM helper h
 where is_available = 1 
   and is_active = 1 
   and is_approved = 1 
   and ROUND((1.609344 * 3956 * acos( cos( radians(30.9006547) ) * cos( radians(latitude) ) * 
cos( radians(longitude) - radians(30.8524007) )sin( radians(30.9006547) ) * sin( radians(latitude) ) ) ) ,8) <= 60
 order 
   by distance LIMIT 3;

Solution

  • in your code you missind the + sign between cos() and sin()

      SELECT h.*
           , ROUND(1.609344 * 3956 * acos( cos( radians(30.9006547) ) * cos( radians(latitude) ) * 
      cos( radians(longitude) - radians(30.8524007) ) +  /*<<<<<< here */
      sin( radians(30.9006547) ) * sin( radians(latitude) ) ) ,8) as distance 
        FROM helper h
       where is_available = 1 
         and is_active = 1 
         and is_approved = 1 
         and ROUND((1.609344 * 3956 * acos( cos( radians(30.9006547) ) * cos( radians(latitude) ) * 
      cos( radians(longitude) - radians(30.8524007) ) + /* <<<< and here */
       sin( radians(30.9006547) ) * sin( radians(latitude) ) ) ) ,8) <= 60
       order 
         by distance LIMIT 3;