sql >> Database >  >> RDS >> Mysql

gebruik kolomwaarde als kolomnaam mysql

U kunt niet verwijzen naar een kolomalias in dezelfde SELECT clausule. U moet het naar een subquery verplaatsen. En je kunt niet verwijzen naar een alias in de WHERE clausule van dezelfde SELECT , moet je HAVING . gebruiken .

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

Ik raad je ten zeerste aan om je tabelontwerp zo aan te passen dat de lengte- en breedtegraad in hun eigen kolommen worden geplaatst, in plaats van elke keer op een komma te moeten splitsen.




  1. Verschil tussen Oracle jdbc-stuurprogrammaklassen?

  2. FOUT:SQLSTATE [HY000] [2002] Er kon geen verbinding worden gemaakt omdat de doelcomputer dit actief weigerde

  3. MySQL DECIMAL gegevenstype

  4. Fout gerelateerd aan only_full_group_by bij het uitvoeren van een query in MySql