sql >> Base de Datos >  >> RDS >> Mysql

use el valor de la columna como nombre de columna mysql

No puede hacer referencia a un alias de columna en el mismo SELECT cláusula. Debe moverlo a una subconsulta. Y no puede hacer referencia a un alias en WHERE cláusula del mismo SELECT , necesitas 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

Le sugiero encarecidamente que arregle el diseño de su tabla para poner la latitud y la longitud en sus propias columnas, en lugar de tener que dividirlas por coma cada vez.