Mysql
 sql >> Base de données >  >> RDS >> Mysql

utiliser la valeur de colonne comme nom de colonne mysql

Vous ne pouvez pas faire référence à un alias de colonne dans le même SELECT clause. Vous devez le déplacer dans une sous-requête. Et vous ne pouvez pas faire référence à un alias dans le WHERE clause du même SELECT , vous devez utiliser 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

Je vous suggère fortement de corriger la conception de votre tableau pour mettre la latitude et la longitude dans leurs propres colonnes, au lieu d'avoir à diviser par une virgule à chaque fois.