sql >> Database teknologi >  >> RDS >> Mysql

brug kolonneværdi som kolonnenavn mysql

Du kan ikke henvise til et kolonnealias i den samme SELECT klausul. Du skal flytte den til en underforespørgsel. Og du kan ikke henvise til et alias i WHERE klausul af samme SELECT , skal du bruge 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

Jeg foreslår kraftigt, at du fikser dit borddesign for at placere breddegrad og længdegrad i deres egne kolonner, i stedet for at skulle opdele på komma hver gang.




  1. Er det muligt at udlæse en SELECT-sætning fra en PL/SQL-blok?

  2. Hvordan pakkes PL SQL-kode i Oracle?

  3. EF 6 - Sådan udføres parallelle forespørgsler korrekt

  4. mysql_fetch_array() returnerer 'det leverede argument er ikke en gyldig MySQL-resultatressource'