PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana saya bisa membuat kueri SQL jarak-geo ini kompatibel dengan Postgres

Kueri menggunakan sintaks khusus untuk MySql. Di Postgres (dan semua yang saya kenal RDBMS) Anda harus menggunakan tabel turunan:

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

Saya juga telah menghapus tanda kutip dari konstanta numerik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghapus nilai tipe enum di postgres?

  2. Cara Mengonversi Stempel Waktu Unix ke Nilai Tanggal/Waktu di PostgreSQL

  3. Penugasan unik dari titik terdekat antara dua tabel

  4. Postgresql :Bagaimana cara memilih entri n persen (%) teratas dari setiap grup/kategori?

  5. Hibernasi menyimpan model Pengguna ke Postgres