SQL中的->>
和->
有什麼區別?Postgres SQL中` - >>`和` - >`有什麼區別?
在這個線程(Check if field exists in json type column postgresql),回答者基本上推薦使用,
json->'attribute' is not null
代替,
json->>'attribute' is not null
爲什麼要使用單箭頭,而不是一個雙箭頭?在我有限的經驗中,兩者都做同樣的事情。
SQL中的->>
和->
有什麼區別?Postgres SQL中` - >>`和` - >`有什麼區別?
在這個線程(Check if field exists in json type column postgresql),回答者基本上推薦使用,
json->'attribute' is not null
代替,
json->>'attribute' is not null
爲什麼要使用單箭頭,而不是一個雙箭頭?在我有限的經驗中,兩者都做同樣的事情。
->
回報json(b)
和->>
回報text
:
with t (jo, ja) as (values
('{"a":"b"}'::jsonb,('[1,2]')::jsonb)
)
select
pg_typeof(jo -> 'a'), pg_typeof(jo ->> 'a'),
pg_typeof(ja -> 1), pg_typeof(ja ->> 1)
from t
;
pg_typeof | pg_typeof | pg_typeof | pg_typeof
-----------+-----------+-----------+-----------
jsonb | text | jsonb | text
您可能意指第一個運算符返回'jsonb' (而不是'json(b)')。 –
@AlexanderFarber我的意思是它可以返回json和jsonb因此括號 –
PostgreSQL提供了兩種本地運營商->
和->>
幫您查詢JSON數據。
運算符->
將JSON對象字段返回爲JSON。 運算符->>
以文本形式返回JSON對象字段。
下面的查詢使用運營商->
讓所有客戶在JSON形式:
而下面的查詢使用運營商->>
讓所有客戶以文本形式:
你可以在下列鏈接中查看更多詳細信息 http://www.postgresqltutorial.com/postgresql-json/
請不要將代碼作爲圖像發佈(http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-圖像 - 的代碼上那麼當-要價-A-問題/ 285557) –
[熱烈祝賀閱讀精細手冊被遺忘的美德。](https://www.postgresql.org/docs/current/static/functions-json.html) –