1
การสืบค้น JSONB ใน PostgreSQL
ฉันมีตารางpersonsซึ่งมีสองคอลัมน์และคอลัมน์ที่idใช้ JSONB data(ตารางนี้เพิ่งสร้างขึ้นเพื่อวัตถุประสงค์ในการสาธิตเพื่อเล่นกับการสนับสนุน JSON ของ PostgreSQL) ตอนนี้มันควรจะมีสองบันทึก: 1, { name: 'John', age: 30 } 2, { name: 'Jane', age: 20 } ตอนนี้ฉันควรจะได้ชื่อของทุกคนที่อายุมากกว่า 25 แล้วสิ่งที่ฉันได้ลองคือ: select data->'name' as name from persons where data->'age' > 25 น่าเสียดายที่นี่ทำให้เกิดข้อผิดพลาด ฉันสามารถแก้ไขได้โดยใช้->>แทน->แต่จากนั้นการเปรียบเทียบไม่ทำงานตามที่คาดไว้อีกต่อไปเนื่องจากไม่ใช่การเปรียบเทียบตัวเลข แต่การแสดงเป็นสตริง select data->'name' as name from persons where data->>'age' > '25' จากนั้นฉันก็พบว่าฉันสามารถแก้ปัญหาได้จริงโดยใช้->และนักแสดงไปที่int: select data->'name' …