我想从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;")
}
我的查询不起作用(它返回所有内容)。对这里出了什么问题的想法?
答案 0 :(得分:3)
您正在使用选择器参数错误,因为您编写了选择器它被解释为文字。您可以使用sprintf创建sql字符串传递参数:
getData <- function(selector){
sql <- sprintf("SELECT * FROM match_player_home WHERE match_id = %s", selector)
rs = dbSendQuery(con, sql)
}
sprintf中的字符串“%s”将替换为selector的值。