我有一個帶有 JSON 列的表,并且想要選擇 JSON 鍵“k”具有值“值”的行。Json 可能由幾對 [K,V] 組成。
[
{"k":"esr:code","v":"800539"},
{"k":"lit","v":"yes"},
{"k":"name","v":"5 км"},
{"k":"railway","v":"halt"},
{"k":"uic_ref","v":"2040757"}
]
我嘗試使用下一個查詢,但它是錯誤的。
SELECT *
FROM public.node
where ((node.tags)::json->>'k' like 'name')
如果可能的話,我該如何解決?)
其中節點 - 表名,標簽 - json 列。
uj5u.com熱心網友回復:
您可以使用 JSONB包含運算子 @>
SELECT *
FROM public.node
where node.tags @> '[{"k","name"}]';
這將與name. 您的使用like可能表明您正在尋找部分匹配 - 但是由于您的like條件不使用通配符,它??與=.
這假設tags被定義為jsonb(它應該是)。如果不是,您需要強制轉換它:node.tags::jsonb
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/504840.html
標籤:sql json PostgreSQL
上一篇:如何使用值作為列格式化sql表
