sql >> Databáze >  >> RDS >> Mysql

použijte hodnotu sloupce jako název sloupce mysql

Nemůžete odkazovat na alias sloupce ve stejném SELECT doložka. Musíte jej přesunout do poddotazu. A nemůžete odkazovat na alias v WHERE klauzule stejného SELECT , musíte použít 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

Důrazně doporučuji upravit návrh tabulky tak, aby zeměpisnou šířku a délku umístil do vlastních sloupců, místo abyste pokaždé museli dělit čárkou.




  1. Připojení Bastion Server k PostgreSQL serveru přes SSH tunel

  2. Najděte rozdíl mezi časovými razítky v sekundách v PostgreSQL

  3. PostgreSQL, překonfigurujte existující tabulku, změňte primární klíč na typ=serial

  4. Jak odstranit koncové nuly z desetinných míst v PostgreSQL