执行查询以使用WHERE过滤数据时,两者之间有何区别:
SELECT "username" FROM "users" AS "user" WHERE ("user"."address"#>>'{postcode}') = '123'
SELECT "username" FROM "users" AS "user" WHERE ("user"."address"->>'postcode') = '123'
答案 0 :(得分:3)
如文档https://www.postgresql.org/docs/current/functions-json.html
中所述 ->> text
获取JSON对象字段作为文本
{"a":1,"b":2}'::json->>'b' = 2
#>> text[]
获取指定路径下的JSON对象作为文本
'{"a":[1,2,3],"b":[4,5,6]}'::json#>>'{a,2}' = 3
因此,您不能将->>
与json路径一起使用,而只能与简单字段一起使用