我正在尝试编写一个更新查询,更新任何拥有名为“Mark”的狗的用户,表中有一个名为“additional_options”的列,它是一个看起来像这样的Json blob
{
'dog_name': 'Mark'
}
字符串
现在我有
update "Employees" e set country = "BR" where json_extract_path(e.additional_options, "dog_name") = "Mark"
型
我正在使用这个postgres函数找到here来构建这个,但现在我得到一个错误
column "dog_name" does not exist
型
谁能帮我弄清楚为什么这不管用
编辑:如果有帮助的话,我用Prisma写了这个查询,它很有效
export const moveToBrazil = async(): Promise<Employee[]> => {
await db.employees.updateMany({
where: {
additional_options: {
path: ['dog_name'],
equals: 'Ellie'
}
},
data: {
country: "BR"
}
});
return db.employees.findMany({
where: {
additional_options: {
path: ['dog_name'],
equals: 'Ellie'
}
},
});
}
型
1条答案
按热度按时间8aqjt8rx1#
您可以使用
->>
操作符来获取json
对象字段作为文本。类似于:字符串
->>
运算符获取JSON对象字段 * 作为文本 *。如果additional_options
是jsonb
列,dog_name
是该JSON中的键,则additional_options->>'dog_name'
获取dog_name
的值作为文本。REFERENCE的