Не можете да препращате към псевдоним на колона в същия SELECT
клауза. Трябва да го преместите в подзаявка. И не можете да се позовавате на псевдоним в WHERE
клауза на същия SELECT
, трябва да използвате HAVING
.
SELECT *, (((acos(sin(("26.851791"*pi()/180)) * sin((`lat`*pi()/180))+cos(("26.851791"*pi()/180)) * cos((`lat`*pi()/180)) * cos((("75.781810"- `lng`)*pi()/180))))*180/pi())*60*1.1515*1.609344) as distance
FROM (SELECT *,
SUBSTRING_INDEX( location, ',', 1 ) AS lat,
SUBSTRING_INDEX( location, ',', -1 ) AS lng
FROM users_test) x
HAVING distance > 5
Силно препоръчвам да коригирате дизайна на таблицата си, за да поставите географската ширина и дължина в техните собствени колони, вместо всеки път да се налага да разделяте запетая.