PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

खाली वस्तुओं के लिए एक जेसन कॉलम कैसे पूछें?

कोई समानता (या असमानता) ऑपरेटर नहीं है डेटा प्रकार के लिए json समग्र रूप से, क्योंकि समानता स्थापित करना कठिन है। jsonb पर विचार करें Postgres 9.4 या बाद के संस्करण में, जहाँ यह संभव है। dba.SE (अंतिम अध्याय) पर इस संबंधित उत्तर में अधिक विवरण:

  • PostgreSQL में JSON[] सरणी से ज्ञात तत्वों को कैसे निकालें?

SELECT DISTINCT json_column ... या ... GROUP BY json_column उसी कारण से विफल (कोई समानता ऑपरेटर नहीं)।

व्यंजक के दोनों पक्षों को text में कास्ट करना अनुमति देता है = या <> ऑपरेटरों, लेकिन यह सामान्य रूप से विश्वसनीय नहीं है क्योंकि समान . के लिए कई संभावित टेक्स्ट प्रतिनिधित्व हैं JSON मान। Postgres 9.4 या बाद के संस्करण में, jsonb . पर कास्ट करें बजाय। (या jsonb . का उपयोग करें शुरू करने के लिए।)

हालांकि , इस विशेष मामले . के लिए (खाली वस्तु ) यह ठीक काम करता है:

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. Django प्रवासन त्रुटि:स्तंभ मौजूद नहीं है

  2. निष्पादित करें... PL/pgSQL में कथन का उपयोग रिकॉर्ड प्रकार के साथ काम नहीं करता है?

  3. PostgreSQL पर रिलीज टेस्ट को तेज करने के लिए ऑटोमेशन का उपयोग करना

  4. PostgreSQL में साइन () फ़ंक्शन कैसे काम करता है

  5. Docker कंटेनर पर PostgreSQL डेटाबेस से कनेक्ट करें