2017-08-04 16 views
1

R - INを持つmysqlクエリを作成できますか?そのINの値はDataFrameカラムのものですか?私は何をしようとしているのR - 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 
);" 

答えて

2

我々はhereを見ることができるように、予想されるステートメントは次のようになります。

WHERE column_name IN (value1, value2, ...); 

我々が得るために、引数collapse=", "pasteを使用することができます希望のフォーマット。私は、これは動作するはずだと思う:

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);" 

・ホープ、このことができます!

+0

私はSQLインジェクションが本質的に関心事ではない文脈でこれもやっています。 – joran