我正在尝试使用SELECT输入创建动态查询。
类似于
选择*从篮子中选择水果("苹果"、"香蕉"、"樱桃")
我有一个名为Fruit_List的表,它填充了我的选择框。
选择器输入("水果列表",Label=h5("选择水果"),MULTY=T,CHOICES=(dbGetQuery(conn,"从水果列表中选择水果‘);")
到目前为止,当我渲染我的选择时,我得到的是"苹果""香蕉""樱桃" 我需要在元素之间加一个逗号才能得到"Apple"、"banana"、"Cherry" 当我从多选框"Apple"中选择单个元素时选择*从篮子中选择水果的位置("苹果")
我的应用程序运行良好。然而,当我选择多个元素"Apple""banana"时,我得到一个错误:需要单个字符串值:[type=Character;Extent=2]。
我很抱歉在开始时没有说得那么清楚
假设ans
是c("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)
。
如果问题中的a
、b
、c
、d
应该表示数字,则我们不需要引号,这样我们就可以将toString(...)
替换为toString(ans)
。
未使用包。