как указано в заголовке, я пытаюсь обновить поле jsonb из R. У меня есть несколько изменений, которые нужно применить. Исходный набор данных создается сторонним приложением, но его необходимо исправить для нескольких строк.
Следующий оператор отлично работает как оператор базы данных:
UPDATE histories set meta=jsonb_set(meta,'{product}','"55-AB"') WHERE id = 17983;
Теперь мне нужно обновите поле «product» для нескольких разных идентификаторов. В качестве примера рассмотрим следующий кадр данных:
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}','"{"
У меня проблемы с цитатой. Есть идеи как обойти это?