sql >> Database >  >> RDS >> PostgreSQL

Hoe kan ik deze SQL-query met geografische afstand Postgres compatibel maken?

De query gebruikt de syntaxis die specifiek is voor MySql. In Postgres (en alle andere bekende RDBMS) zou je een afgeleide tabel moeten gebruiken:

select *
from (
    select *, 
        (3959 * acos( cos( radians(53.49) ) * cos( radians( places.lat ) ) 
        * cos( radians( places.lng ) - radians(-2.38) ) 
        + sin( radians(53.49) ) * sin( radians( places.lat ) ) ) ) AS distance 
    from (
        select *
        from places
        where places.lat between 53.475527714192 and 53.504472285808
        and places.lng between -2.4043246788967 and -2.3556753211033
        ) as places 
    where places.deleted_at is null 
    ) sub
where distance <= $1 
order by distance asc

Ik heb ook aanhalingstekens uit numerieke constanten verwijderd.



  1. 12.2 RAC/GI Nieuwe functies

  2. Fout bij het openen van EntityManager - openjpa - WAS liberty profile

  3. Visual Studio 2017 + entiteitskader + identiteit + mysql werkt niet

  4. SQLite-tabel maken