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

Bagaimana cara menanyakan kolom json untuk objek kosong?

Tidak ada operator persamaan (atau ketidaksetaraan) untuk tipe data json secara keseluruhan, karena kesetaraan sulit untuk dibangun. Pertimbangkan jsonb di Postgres 9.4 atau lebih baru, jika memungkinkan. Detail lebih lanjut dalam jawaban terkait ini di dba.SE (bab terakhir):

  • Bagaimana cara menghapus elemen yang diketahui dari larik JSON[] di PostgreSQL?

SELECT DISTINCT json_column ... atau ... GROUP BY json_column gagal karena alasan yang sama (tidak ada operator kesetaraan).

Mentransmisikan kedua sisi ekspresi ke text memungkinkan = atau <> operator, tapi itu biasanya tidak dapat diandalkan karena ada banyak kemungkinan representasi teks untuk sama nilai JSON. Di Postgres 9.4 atau lebih baru, transmisikan ke jsonb sebagai gantinya. (Atau gunakan jsonb untuk memulai.)

Namun , untuk kasus khusus ini (objek kosong ) berfungsi dengan baik:

select * from test where foo::text <> '{}'::text;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 7 Cara Menemukan Baris Duplikat di PostgreSQL sambil Mengabaikan Kunci Utama

  2. Jalankan sql asli dengan hibernate

  3. PostgreSQL DATEADD() Setara

  4. Bagaimana menulis Pandas Dataframe ke model Django

  5. Rails 4 LIKE query - ActiveRecord menambahkan tanda kutip