正如标题所述,我正在尝试从 R 内部更新 jsonb 字段。我有几个更改要应用。原始数据集由第三方应用程序创建,但需要针对多行进行更正。
以下语句作为数据库语句工作正常:
UPDATE histories set meta=jsonb_set(meta,'{product}','"55-AB"') WHERE id = 17983;
现在,我需要为几个不同的 id 更新“产品”字段。假设以下数据框为例:
df<-data.frame(product=c("55-AB","567-C","UTG-98"),
id=c(17983,54388,20000))
通常我会sql_glue
从glue
包中使用,但我用完了动态生成上述查询的引号。
sql_glue("UPDATE histories set meta=jsonb_set(meta,'{product}','"{`df$product`}"') WHERE id = {`df$id`};")
Error: unexpected '{' in "sql_glue("UPDATE histories set meta=jsonb_set(meta,'{pesticide}','"{"
我遇到了报价问题。知道如何解决这个问题吗?