У меня есть таблица данных, в которой есть поле с именем details
, содержащее объект json.
Объект выглядит примерно так:
{
"name": "Persons Name",
"list": [
{
"name": "Persons Name",
"assigned": {
"company": "Company 1",
"number": "AA1"
}
},
{
"name": "Persons Name",
"assigned": {
"company": "Company 2",
"number": "BB2"
}
},
{
"name": "Persons Name",
"assigned": {
"company": "Company 3",
"number": "AA3"
}
}
],
"total_results": 3
}
По сути, я хотите вернуть все данные, если любое из полей «назначенный» - >> «номер» этого лица начинается с буквы A. В приведенном выше примере два номера физических лиц имеют префикс A, поэтому я хочу, чтобы все данные были возвращены.
Я играл и добился определенного прогресса, но не могу понять, как все это собрать вместе.
select f->'assigned'->>'number' from jsonb_array_elements((select details->'list' from table_name)) f;
Приведенный выше запрос может дать мне список из трех ' число 'полей, но я не уверен, как я могу объединить это с запросом, чтобы вернуть всю информацию, если какое-либо из этих полей содержит префикс A