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

MySQL beregner afstand (simpel løsning)

Du kan ikke henvise til et alias i select-sætningen fra en anden del af sql-sætningen. Du skal sætte hele udtrykket i din where-sætning:

WHERE
    ROUND( SQRT( POW( ( (69.1/1.61) * ('52.64' - latitude)), 2)
        + POW(( (53/1.61) * ('6.88' - longitude)), 2)), 1) < 10
 

En renere løsning ville være at bruge en underforespørgsel til at generere de beregnede data:

SELECT *, distance FROM ( SELECT *, ROUND( SQRT( POW( ( (69.1/1.61) * ('52.64' - latitude)), 2) + POW(( (53/1.61) * ('6.88' - longitude)), 2)), 1) AS distance FROM lp_relations_addresses ) d WHERE d.distance < 10 ORDER BY d.distance DESC

Demo:http://www.sqlize.com/q96p2mCwnJ



  1. MariaDB JSON_MERGE() Forklaret

  2. Jeg har problemer med billedstørrelsen i blob-kolonnen i Oracle 12c

  3. Konfigurer MySQL og Oracle Database Mac OS X

  4. Sådan stopper eller drosler SST-drift på en Galera-klynge