mysql - 在 R 中运行 MySQL 查询,其中要搜索的值在 DF 中

标签 mysql r

我有一个包含多个列的 DF,但有一列是某些预处理阶段的结果,该列包含我需要使用 MySQL 查询进行搜索的值。

如何让查询直接读取包含此信息的列或另一个 DF,而不是手动添加它们?

DF 示例:

id
3061945
7392492
7491277
7855936
8125589
7060737
5614627
7597607

查询:

select c.Id as sfdcContactID,
    c.FirstName, 
    c.ID__c as uid 
from Contact as c 
where c.ID__c in ('values to be looked based on the DF’); 

最佳答案

由于数据帧中可能有数千甚至数百万个值,请考虑将数据帧导出到 MySQL 临时表,然后将其加入您的查询中。以下是使用数据库 API 或命令行最终创建查询结果数据框的几种方法。

RODBC

# REPLACES TEMP WITH EVERY CALL
sqlSave(conn, "temptablename", df, append = FALSE)   

# RUNS QUERY AND IMPORTS RESULTS INTO DATAFRAME
newdf <- sqlQuery(conn, paste0("SELECT c.Id as sfdcContactID, c.FirstName, c.ID__c as uid",
                               " FROM Contact c",
                               " INNER JOIN temptablename t ON c.ID__c = t.id"))

RMySQL

# REPLACES TEMP WITH EVERY CALL
dbWriteTable(conn, "temptablename", df, overwrite = TRUE)

# RUNS QUERY AND IMPORTS RESULTS INTO DATAFRAME
newdf <- dbGetQuery(conn, paste0("SELECT c.Id as sfdcContactID, c.FirstName, c.ID__c as uid",
                                 " FROM Contact c",
                                 " INNER JOIN temptablename t ON c.ID__c = t.id"))

命令行

R - CSV 导出

write.csv("path/to/file.csv", df)

SQL (另存为 .sql 文件)

# IMPORT CSV FILE TO TABLE
LOAD DATA LOCAL INFILE '/path/to/file.csv'
INTO TABLE temptablename
FIELDS TERMINATED BY
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

# EXPORT QUERY TO CSV FILE
SELECT c.Id as sfdcContactID, c.FirstName, c.ID__c as uid
FROM Contact c
INNER JOIN temptablename t ON c.ID__c = t.id
INTO OUTFILE '/path/to/output.csv' 
FIELDS ENCLOSED BY '"' 
TERMINATED BY ',' 
LINES TERMINATED BY '\r\n';

R - CMD/Shell 调用 mysql 客户端

system("mysql -u username -p password db_name < /path/to/file.sql")

df <- read.csv("/path/to/output.csv")

关于mysql - 在 R 中运行 MySQL 查询,其中要搜索的值在 DF 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41813582/

相关文章:

r - 使用 ggplot 和 purrr 绘制多条逻辑曲线的推导图

r - 如何清理和组织这个已抓取数据列表?

r - 即时构建转换语句

java - 由于 Java 无法在 R 中运行 H2o

php - PHPmyAdmin 中未选择数据库错误

mysql - 一张表中两列之间的外键关系

mysql - 使用 HAVING 还是 WHERE?

php - 每次使用 ionic、php 和 my sql 在日历中的特定日期创建事件时,创建一个要在准确时间调用的函数

mysql - 错误 2006 (HY000) : MySQL server has gone away

r - 根据复杂模式列出文件