使用参数在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数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

我的 R 代码没有从 SQL Server 获取数据

使用 R RODBC 参数化 SQL 查询

仅从 sql server 中的日期数据类型中获取日期 [重复]

sql中获取到两条数据,怎么获取最新的

迭代获取数据框列的最大值,加一并重复 r 中的所有行

sql语句 分次(多次)获取不重复记录,请高手赐教!