标签: sql json postgresql
我不知道该怎么问,所以我将创建一个示例:
假设我有一个名为“市场”的表,该表仅包含两列和三行,如下所示:
所以,我想知道的是,是否有一种方法可以将所有购买的产品都放入不同的行中,例如:
答案 0 :(得分:3)
您需要将数组取消嵌套,然后使用->>运算符提取产品名称:
->>
select t.user_id, x.purchase ->> 'product' as product from the_table t cross join jsonb_array_elements(t.purchases) as x(purchase);
如果您的列是json而不是jsonb,则需要改用json_array_elements()
json
jsonb
json_array_elements()