无法使用json列创建选择查询?

时间:2019-10-23 15:41:05

标签: postgresql

我想创建一个选择查询,为我提供PIN码为99997的客户的结果,这些结果位于PostgreSQL表的下面的json中。

Json使用过

{
    "user_address": [
        {
            "house_number": "123",
            "house_address": "abc Colony",
            "city": "XYZ",
            "state": "PQR",
            "pincode": "99999"
        },
        {
            "house_number": "456",
            "house_address": "mop Colony",
            "city": "BKW",
            "state": "MAH",
            "pincode": "99997"
        },
        {
            "house_number": "789",
            "house_address": "poui Colony",
            "city": "XYZ",
            "state": "PQR",
            "pincode": "99989"
        },
        {
            "house_number": "879",
            "house_address": "rty Colony",
            "city": "BKW",
            "state": "MAH",
            "pincode": "99997"
        }
    ]
}

已经尝试使用索引选项,该选项在“ user_address”中提供json。

2 个答案:

答案 0 :(得分:2)

您可以使用PostgreSQL JSON数据类型中的json_array_elements函数来查询数据

SELECT *
FROM   test t, json_array_elements(t.address->'user_address') obj
WHERE  obj->>'pincode' = '99997';

SQLFiddle

答案 1 :(得分:0)

您没有提供版本,但是对于postgres 12来说,这是相对简单的。如果您的表名为test,则使用名为“ a”的jsonb列:

window.onload = function() {
  // Your script
}