我試圖在放置在 PostgreSQL 資料庫中的 JSON 陣列中找到特定值。我搜索了一些解決方案(當你搜索諸如“在 json 陣列 postgresql 中查找值”之類的東西時訪問了所有鏈接)并嘗試了它們,但我沒有成功,這是我的最后一個作業示例:
SELECT json_column
FROM table t,
LATERAL (
SELECT array_agg(json::text::integer) arr
FROM json_array_elements(t.json_column -> 'ids') json
) subquery;
這個解決方案只是列印出我的 JSON 列。我理解的作業流程json_array_elements和array_agg,但是LATERAL是魔術對我來說。也許這是原因?
我擁有的 JSON 結構:
[
{
"ids": [
12312,
123123,
124124,
124124124,
12,
12234
]
}
]
所以,我需要了解如何提取值并找到我需要的值。提前感謝您的幫助!
uj5u.com熱心網友回復:
- 使用
json_array_elements解壓JSON陣列 - 將每一行與未打包的陣列元素連接起來
- 按未打包的元素值過濾
select t.* from my_table t
cross join json_array_elements(json_column->'ids') as j(id)
where j.id::text = '12312';
更新
由于有一個外部陣列,并且外部陣列中只有一個物件,因此這種修改似乎就足夠了:
select t.* from my_table t
cross join json_array_elements(
json_array_element(json_column,0)->'ids'
) as j(id)
where j.id::text = '12312';
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/408980.html
標籤:
