使用参数在R中获取SQL数据[重复]
Posted
技术标签:
【中文标题】使用参数在R中获取SQL数据[重复]【英文标题】:Fetching SQL data in R with parameters [duplicate] 【发布时间】:2016-02-17 16:26:59 【问题描述】:我想从 mysql 服务器中提取一些数据。因此我使用以下代码:
#connect to database
getPlayersHome <- dbGetQuery(con,"SELECT * FROM match_player_home WHERE match_id = 1;")
这很好用,但是我想将它包含在一个带参数的函数中。但如果我这样做:
getData <- function(selector)
getPlayersHome <- dbGetQuery(con,"SELECT * FROM match_player_home WHERE match_id = selector;")
我的查询不起作用(它返回所有内容)。对这里出了什么问题有任何想法吗?
【问题讨论】:
你函数中的查询不太一样,我想你想要像paste0("SELECT * FROM match_player_home WHERE match_id = ", selector, ";")
这样的东西来代替查询。
【参考方案1】:
您错误地使用了选择器参数,当您编写选择器时,它被解释为文字。您可以使用 sprintf 创建传递参数的 sql 字符串:
getData <- function(selector)
sql <- sprintf("SELECT * FROM match_player_home WHERE match_id = %s", selector)
rs = dbSendQuery(con, sql)
sprintf 中的字符串 "%s" 将被选择器的值替换。
【讨论】:
以上是关于使用参数在R中获取SQL数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章