Json
postgresql:錯誤:位置 1 的路徑元素不是整數:
我正在嘗試使用另一列中存在的文本值更新 jsonb 列中的欄位值,但出現一些語法錯誤;沒有得到任何解決方案。
我正在嘗試在 JSONB 下面交換 OutgoingVertexid 和 IncomingVertexId 的值
'[ { "Edgeid":10, "Weight":100, "Active":1, "OutgoingVertexid":"", "IncomingVertexid":"G", "EdgeColor":"Black" } ] '
因此,通過將所有值 OutgoingVertexid 和 IncomingVertexid 值放在臨時表中來使用下面的程式碼。
UPDATE temp_table SET owner_property = CASE WHEN owner_outgoing_edge IS NOT NULL THEN jsonb_set(owner_property, '{OutgoingVertexid}', '""') ELSE jsonb_set(owner_property, '{OutgoingVertexid}', ''||owner_incoming_edge::jsonb||'') END;
但得到以下錯誤:
錯誤:位置 1 的路徑元素不是整數:
提前致謝
您的 json 值是一個數組,而不是單個值。因此,您需要通過在傳遞給的數組中包含索引來選擇要更改的數組元素
jsonb_set()
UPDATE temp_table SET owner_property = CASE WHEN owner_outgoing_edge IS NOT NULL THEN jsonb_set(owner_property, '{0, OutgoingVertexid}', '""') ELSE jsonb_set(owner_property, '{0, OutgoingVertexid}', to_jsonb(owner_incoming_edge)) END