6
Я использую RMySQL и DBI для соединения между R и MySQLвыполнить несколько SQL команд сразу на R
library(RMySQL)
library(DBI, quietly = TRUE)
Все работает отлично для одной команды, такие как
sql = "select * from clients"
con <- dbConnect(MySQL(),user=user, password=password, dbname=dbname, host=host)
rs <- dbSendQuery(con, sql)
data <- fetch(rs, n=-1)
huh <- dbHasCompleted(rs)
dbClearResult(rs)
on.exit(dbDisconnect(con))
Однако, когда я хочу выполнить несколько команд с помощью;; между ними (например, для установки параметра), он возвращает ошибку. Например
sql = "SET @LAST_TEN_DAY = DATE_ADD(NOW(), INTERVAL -10 DAY); select * from clients where date > @LAST_TEN_DAY"
con <- dbConnect(MySQL(),user=user, password=password, dbname=dbname, host=host)
rs <- dbSendQuery(con, sql)
data <- fetch(rs, n=-1)
huh <- dbHasCompleted(rs)
dbClearResult(rs)
on.exit(dbDisconnect(con))
Большое спасибо,
Вы не можете использовать SQL и R как это. Вы должны создать переменную, которая будет хранить значение DATE_ADD (NOW(), INTERVAL, -10 DAY), а затем использовать SQL-запрос 'SELECT * FROM CLIENTS WHERE DATE> ваше значение переменной' – MaxPD
Hi Max, спасибо за в ответ. Могу ли я узнать, как это сделать в R? Потому что, если вы выполняете команду SQL для создания переменной, я не уверен, будет ли эта переменная сохранена для выполнения следующей команды SQL. –
Переменная будет глобальной и может использоваться для любого оператора sql внутри вашего R-кода. – MaxPD