->>和#>>之间的JSONB区别

时间:2019-02-15 09:20:59

标签: postgresql

执行查询以使用WHERE过滤数据时,两者之间有何区别:

SELECT "username" FROM "users" AS "user" WHERE ("user"."address"#>>'{postcode}') = '123'


SELECT "username" FROM "users" AS "user" WHERE ("user"."address"->>'postcode') = '123'

1 个答案:

答案 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路径一起使用,而只能与简单字段一起使用