使用SELECTINPUT IN R SHINY创建SQL查询IN、SELECTINPUT、SQL、SHINY

2023-09-03 14:05:03 作者:独遗酒盏

我正在尝试使用SELECT输入创建动态查询。

类似于

sql语句,查询数据库里除了某一条记录外的所有记录

选择*从篮子中选择水果("苹果"、"香蕉"、"樱桃")

我有一个名为Fruit_List的表,它填充了我的选择框。

选择器输入("水果列表",Label=h5("选择水果"),MULTY=T,CHOICES=(dbGetQuery(conn,"从水果列表中选择水果‘);")

到目前为止,当我渲染我的选择时,我得到的是"苹果""香蕉""樱桃" 我需要在元素之间加一个逗号才能得到"Apple"、"banana"、"Cherry" 当我从多选框"Apple"中选择单个元素时

选择*从篮子中选择水果的位置("苹果")

我的应用程序运行良好。然而,当我选择多个元素"Apple""banana"时,我得到一个错误:需要单个字符串值:[type=Character;Extent=2]。

我很抱歉在开始时没有说得那么清楚

推荐答案

假设ansc("a", "b", "c", "d")的非空子集。例如,

ans <- c("b", "d")
sprintf("select * from table where item in (%s)", toString(shQuote(ans, "csh")))

给予:

[1] "select * from table where item in ('b', 'd')"

如果您使用的是R 3.6或更高版本,您可以选择将shQuote(ans, "csh")替换为sQuote(ans, FALSE)

如果问题中的abcd应该表示数字,则我们不需要引号,这样我们就可以将toString(...)替换为toString(ans)

未使用包。