在一列從JSON陣列獲取的名稱值說細節的值存儲爲:Postgres的:使用SELECT
[{"id":"key1","name":"Concerts \u0026amp; Tour Dates"},{"id":"key2","name":"Nightlife \u0026amp; Singles"}]
列類型:文本
我需要獲得名逗號分隔值使用單個SELECT語句。還需要amp標誌。
結果: [音樂會&巡演日期,夜生活&單打]
在一列從JSON陣列獲取的名稱值說細節的值存儲爲:Postgres的:使用SELECT
[{"id":"key1","name":"Concerts \u0026amp; Tour Dates"},{"id":"key2","name":"Nightlife \u0026amp; Singles"}]
列類型:文本
我需要獲得名逗號分隔值使用單個SELECT語句。還需要amp標誌。
結果: [音樂會&巡演日期,夜生活&單打]
這將做到這一點:
select string_agg(d.e ->> 'name', ',')
from the_table, json_array_elements(that_text_column::json) as d(e);
要改變&
到&
使用替換功能:
select string_agg(replace(d.e ->> 'name','&', '&'), ',')
from the_table, json_array_elements(that_text_column::json) as d(e);
是否可以使用:: select_id從the_table,json_array_elements(that_text_column :: json)作爲d(e)where(string_agg(替換(de - >>'name','&', '&'),',')&&('{test1,test2,test3}')) –
@SyedAsadAbbasZaidi:'&&('{test1,test2,test3}'))''應該是什麼? –
&&是匹配數組元素。我想要做的是匹配string_agg值與我預先定義的數組值。我知道我還需要在string_agg之後做string_to_array –
儘管可能使用SQL來解決這個問題(查找JSON函數和FOREACH),但使用任何外部編程語言(例如, '','。join([d ['name'] for d in]]'會完成Python中的大部分工作,並且轉義amp標記也很容易)。 –
什麼都沒有... @Craig –