sql >> Databasteknik >  >> RDS >> Mysql

använd kolumnvärde som kolumnnamn mysql

Du kan inte referera till ett kolumnalias i samma SELECT klausul. Du måste flytta den till en underfråga. Och du kan inte referera till ett alias i WHERE sats av samma SELECT måste du använda 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

Jag rekommenderar starkt att du fixar din tabelldesign för att placera latitud och longitud i sina egna kolumner, istället för att behöva dela på kommatecken varje gång.




  1. Oracle DB Server + APEX + ORDS + JasperReports from scratch (Del 4)

  2. MySQL:VÄLJ från en annan server

  3. Säkerhetskopiering på tabellnivå

  4. Tillkännager ClusterControl 1.5 - med automatisk säkerhetskopiering och molnuppladdning