Скажем, у меня есть таблица базы данных с нескольких общих столбцов, таких как имя, пол, возраст, ...выбрать из ... - на основе значения в формате JSON
Кроме того, у меня есть дополнительный столбец, используя Тип данные в формате JSON (доступный от Postgres 9.2) с произвольной длиной и произвольными полей в формате JSON:
{"occupation":"football"}
{"occupation":"football", "hair-colour":"black"}
{"hair-style":"curly"}
Используя новые возможности Postgres 9.3 Я хочу, чтобы вернуть все строки с оккупации = футболом, например.
Что-то вроде этого псевдо: select * from table where json_field.occupation = football
Есть ли способ сделать это?
дубликат: http://stackoverflow.com/questions/10560394/how-do-i-query-using-fields-inside-the-new-postgresql-json-datatype – nif
Я уже это видел. Я намерен избежать пользовательских функций, упомянутых в UPDATE I. И структура в ответе кажется отличной от моей. – Filip
Плакат ответа в дублированном вопросе использовал функцию 'json_to_elements' для создания нескольких строк из массива. Таким образом, структура идентична вашей, которая содержит один объект JSON для каждой строки. И никакая пользовательская функция не использовалась. Решение точно такое же, как вы приняли. – nif