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

Operator tidak ada:json =json

Singkatnya - gunakan JSONB sebagai ganti JSON atau berikan JSON ke JSONB.

Anda tidak dapat membandingkan nilai json. Anda dapat membandingkan nilai teks sebagai gantinya:

SELECT * 
FROM movie_test 
WHERE tags::text = '["dramatic","women","political"]'

Namun perhatikan bahwa nilai tipe JSON disimpan sebagai teks dalam format yang diberikan. Jadi, hasil perbandingan tergantung pada apakah Anda secara konsisten menerapkan format yang sama:

SELECT 
    '["dramatic" ,"women", "political"]'::json::text =  
    '["dramatic","women","political"]'::json::text      -- yields false!
    

Di Postgres 9.4+ Anda dapat menyelesaikan masalah ini menggunakan tipe JSONB, yang disimpan dalam format biner yang didekomposisi. Nilai jenis ini dapat dibandingkan:

SELECT 
    '["dramatic" ,"women", "political"]'::jsonb =  
    '["dramatic","women","political"]'::jsonb           -- yields true

jadi kueri ini jauh lebih andal:

SELECT * 
FROM movie_test 
WHERE tags::jsonb = '["dramatic","women","political"]'::jsonb

Baca selengkapnya tentang Jenis JSON.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memantau PostgreSQL menggunakan Nagios

  2. Bagaimana cara membaca konten file .sql menjadi skrip R untuk menjalankan kueri?

  3. Pengembang Oracle SQL dan PostgreSQL

  4. Kunci untuk SELECT sehingga proses lain tidak mendapatkan data lama

  5. Instalasi PostgresSQL gagal:inisialisasi klaster basis data gagal os MAC