如何在Shiny中执行以下操作(或者有可能)。 我想拥有一个UI,用户可以在其中选择要传递给SQL的“ where-condition”。然后,用户可以单击“运行”按钮,查询结果将导出到他的文件夹中。
例如,我有一个sql子句: 从Animaldata中选择*,其中('Cat')中的animal_type
现在我想拥有一个UI,用户可以在其中选择要放入“ where-condition”的内容。因此,他看到了“狗”,“猫”选项,并可以选择他想要的选项。例如,用户仅选择“狗”并单击“运行”,然后我们将查询结果自动导出到某些指定的文件夹。
答案 0 :(得分:0)
这很有可能(我已经在许多应用程序中做到了这一点)。您的问题很难回答,因为它不是特定的编码问题。另外,您还没有指出正在使用哪个数据库应用程序,因此很难就与R驱动程序相关的任何内容提供建议。通常,使用兼容DBI的驱动程序,强烈建议将用户输入作为参数列表传递(以保护sql注入攻击)。
library(your DBI compliant package)
selections <- input$my_selections #input from shiny
selections <- as.vector(selections) #here may encounter driver/database compliance issues as you may or may not be able to pass-in a vector/array object. If not you can pass-in a string and split it on the database end
selections <- paste0(as.vector(selections),collapse=",") #alternative input
conn <- #your connection to the database
result <- dbGetQuery(conn,"select * from Animaldata where animal_type in ( $1 )",
params=list(selections))