У меня есть таблица базы данных crate с записями, подобными приведенной ниже:
{
"businessareaname": "test",
"profile": {
"phone": "",
"fullname": "",
"email": "[email protected]"
}
}
Я пробовал запрашивать с помощью:
select *
from myTable
where profile['email'] = '[email protected]';
но ничего не возвращается. Как я могу получить записи на основе значения электронной почты, которое находится в объекте?
Это не плоская таблица, так что это моя лучшая попытка показать структуру таблицы. Первая строка — заголовок, а следующие две строки — данные.
business name | profile:
- phone
- fullname
- email
-------------------------------------
"test" | ""
""
"[email protected]"
-------------------------------------
"other one" | "(415)884-9938"
"Abe Miessler"
"[email protected]"
...where unnest( profile,['email']) = '[email protected]';
- person Jorge Campos   schedule 08.11.2017SQLActionException[UnsupportedFeatureException: unknown function: unnest(object, string_array)]
- person Abe Miessler   schedule 08.11.2017... where profile->>'email'='[email protected]'
или что-то близкое к нему должно работать. См. это здесь, в документе postgresql: postgresql.org/docs/9.3/ статический/функции-json.html - person Jorge Campos   schedule 09.11.2017