mat3000000 Posted February 18, 2012 Share Posted February 18, 2012 I have a query to search jobs. It also works out the distance from the user to the job: SELECT ((ACOS(SIN('$b_lat' * PI() / 180) * SIN(`lat` * PI() / 180) + COS('$b_lat' * PI() / 180) * COS(`lat` * PI() / 180) * COS(('$b_long' - `long`) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS `distance`,username,sector,job,pay,reqexp, jobtime, hours, hourscat,days,description FROM `jobs` WHERE sector='$sector' AND job='$job' AND validated='1' AND `distance` < 80 ORDER BY `distance` DESC; I am getting an error when running this, however, when I remove the "AND `distance` < 80" clause it works fine. Whats the problem here?? Quote Link to comment Share on other sites More sharing options...
livethedead Posted February 18, 2012 Share Posted February 18, 2012 I believe if you replace AND(s) with commas it should work. Quote Link to comment Share on other sites More sharing options...
Pikachu2000 Posted February 18, 2012 Share Posted February 18, 2012 What is the error? Quote Link to comment Share on other sites More sharing options...
PFMaBiSmAd Posted February 18, 2012 Share Posted February 18, 2012 You cannot use values that are derived in the SELECT clause, in the WHERE clause, because they don't exist when the WHERE clause is used (to determine which rows are in the results set.) You would need to use HAVING `distance` < 80 Quote Link to comment Share on other sites More sharing options...
mat3000000 Posted February 21, 2012 Author Share Posted February 21, 2012 Thank You, I am now using 'HAVING' and it seems to work fine. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.