我试图深入研究文档,但似乎找不到任何我想要的东西。PostgreSQL 中的各种 JSON/B 运算符(->、->>、@>、?等)是否有等效函数?
编辑:为了澄清,我想知道是否可以让以下分组查询返回相同的结果:
SELECT '{"foo": "bar"}'::json->>'foo'; -- 'bar'
SELECT json_get_value('{"foo": "bar"}'::json, 'foo'); -- 'bar'
SELECT '{"foo": "bar"}'::jsonb ? 'foo'; -- t
SELECT jsonb_key_exists('{"foo": "bar"}'::jsonb, 'foo'); -- t
Run Code Online (Sandbox Code Playgroud)
您可以使用系统目录来发现与每个运算符等效的功能。
select * from pg_catalog.pg_operator where oprname ='?';
Run Code Online (Sandbox Code Playgroud)
这表明该函数名为“jsonb_exists”。有些运算符是重载的,并且会给出多个函数,您必须查看参数类型来区分它们。
每个运算符“背后”都有一个功能。该函数本身可能会或可能不会被记录。
| 归档时间: |
|
| 查看次数: |
1259 次 |
| 最近记录: |