Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

use o valor da coluna como nome da coluna mysql


Você não pode fazer referência a um alias de coluna no mesmo SELECT cláusula. Você precisa movê-lo para uma subconsulta. E você não pode se referir a um alias no WHERE cláusula do mesmo SELECT , você precisa usar 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

Eu sugiro fortemente que você corrija o design da sua tabela para colocar a latitude e a longitude em suas próprias colunas, em vez de ter que dividir em vírgula todas as vezes.