的R - R中
问题描述:
在该R MySQL查询内部数据帧值 - 是否有可能使一个IN,其中,在值来自数据帧列MySQL查询?的R - R中
实例的我想要做的事:
Directory = read.csv("worlddirectory.csv", header = TRUE, sep = ",",stringsAsFactors=FALSE)
Active_Customers = Directory[(Directory$Status == "Active"),]
PhoneNumbers = dbGetQuery(DBConnection,
"
Select
db.phonenumbers,
db.names
from
database db
where
db.country IN
(
Active_Customers$Country
);"
答
我们可以看到here,预期的声明是这样的:
WHERE column_name IN (value1, value2, ...);
我们可以使用paste
的说法collapse=", "
获得所需的格式。我想,这应该工作:
PhoneNumbers = dbGetQuery(DBConnection,
paste0("SELECT db.phonenumbers, db.names ",
"FROM database db ",
"WHERE db.country IN (",
paste(Active_Customers$Country,collapse=", "),");"))
例子:
Active_Customers <- data.frame(Country=c("NL","BE","US"))
paste0("SELECT db.phonenumbers, db.names ",
"FROM database db ",
"WHERE db.country IN (",
paste(Active_Customers$Country,collapse=", "),");")
输出:
[1] "SELECT db.phonenumbers, db.names FROM database db WHERE db.country IN (NL, BE, US);"
希望这有助于!
我也这么做,寿的情况下,其中的SQL注入本质上不是一个问题。 – joran