從 PostgreSQL 中的 JSON 資料擷取數組元素
PostgreSQL 的 JSON 資料類型(在版本 9.3 中引入)簡化了複雜資料結構的儲存和管理。 然而,高效查詢 JSON 數組中的特定元素可能很棘手。 本指南示範了檢索數組元素的有效策略,特別關注物件數組中的「src」欄位。
PostgreSQL 9.4 及更高版本的最佳化方法 (jsonb)
PostgreSQL 9.4 及更高版本提供卓越的 jsonb
資料類型,提供增強的效能和功能。 最有效的方法是使用 @>
運算子和 jsonb_array_elements()
:
<code class="language-sql">SELECT * FROM reports WHERE data->'objects' @> '[{"src":"foo.png"}]';</code>
這個簡潔的查詢直接檢查「objects」陣列是否包含與指定條件相符的元素。
PostgreSQL 9.3 及更高版本的解決方案 (json)
對於 PostgreSQL 9.3 及更高版本(使用 json
類型),json_array_elements()
函數在橫向聯接中使用:
<code class="language-sql">SELECT data::text, obj FROM reports r, json_array_elements(r.data#>'{objects}') obj WHERE obj->>'src' = 'foo.png';</code>
這種方法取消了數組的嵌套,從而允許檢查單個元素。
重要提示:
unnest
呼叫或橫向連接。 以上是如何在 PostgreSQL 中有效率地查詢 JSON 資料中的陣列元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!