如何使用 dbReadTable 读取 table 的几列
How read few columns of a table using dbReadTable
我在创建连接后使用以下代码,"mydb" 使用我的 MySQL 服务器将数据导入 R,它工作正常。
my_data <- dbReadTable(mydb, "ar_data")
但我不想导入或阅读整个 table,我只是不想阅读前 5 列。我该怎么做?
也许试试 dbSendQuery
:
library(DBI)
library(RMySQL)
drv <- dbDriver("MySQL")
con <- dbConnect (drv, dbname="mydb", user="username")
dbWriteTable(con, "mtcars", mtcars)
dbReadTable(con, "mtcars") # full table
sql <- paste0("SELECT ", paste(dbListFields(con, "mtcars")[-(1:5)], collapse=","), " FROM mtcars LIMIT 5")
res <- dbSendQuery(con, sql)
dbFetch(res)
# drat wt qsec vs am gear carb
# 1 3.90 2.620 16.46 0 1 4 4
# 2 3.90 2.875 17.02 0 1 4 4
# 3 3.85 2.320 18.61 1 1 4 1
# 4 3.08 3.215 19.44 1 0 3 1
# 5 3.15 3.440 17.02 0 0 3 2
dbClearResult(res)
res <- dbSendQuery(con, 'DROP TABLE mtcars')
dbDisconnect(con)
我在创建连接后使用以下代码,"mydb" 使用我的 MySQL 服务器将数据导入 R,它工作正常。
my_data <- dbReadTable(mydb, "ar_data")
但我不想导入或阅读整个 table,我只是不想阅读前 5 列。我该怎么做?
也许试试 dbSendQuery
:
library(DBI)
library(RMySQL)
drv <- dbDriver("MySQL")
con <- dbConnect (drv, dbname="mydb", user="username")
dbWriteTable(con, "mtcars", mtcars)
dbReadTable(con, "mtcars") # full table
sql <- paste0("SELECT ", paste(dbListFields(con, "mtcars")[-(1:5)], collapse=","), " FROM mtcars LIMIT 5")
res <- dbSendQuery(con, sql)
dbFetch(res)
# drat wt qsec vs am gear carb
# 1 3.90 2.620 16.46 0 1 4 4
# 2 3.90 2.875 17.02 0 1 4 4
# 3 3.85 2.320 18.61 1 1 4 1
# 4 3.08 3.215 19.44 1 0 3 1
# 5 3.15 3.440 17.02 0 0 3 2
dbClearResult(res)
res <- dbSendQuery(con, 'DROP TABLE mtcars')
dbDisconnect(con)