使用 R,有没有办法通过使用一列数字的向量来查询 sql 文件的行?
Using R, is there a way to query rows of a sql file by using a vector of one column of numbers?
我正在尝试根据我已有的列向量获取 sql 文件行的查询。 sql 文件有一列 ID,而其余文件具有基于 ID 的信息。我有一个单独的我感兴趣的 ID 向量,我想知道是否有一种方法可以根据我拥有的 ID 向量查询信息和 ID 的行。
我试过了
mydb <- dbConnect(RSQLite::SQLite(), "name.db")
x = dbGetQuery(mydb, 'SELECT ID FROM table;')
它获取了所有的 ID,但我只想获取基于向量的特定 ID。我不能只在那里输入字符向量,因为我有大量数据。
a <- c(100,102,103,104..)
mydb <- dbConnect(RSQLite::SQLite(), "name.db")
x = dbGetQuery(mydb, 'SELECT ID FROM table==a ;')
这不仅给我我想要的 ID
有没有一种方法可以根据具有所需 ID # 的一列的向量来查询行?我们能否以某种方式让系统仅输出包含与我们提供的向量匹配的 ID 的行?
一个SQL查询是一个SQL编码的字符串。您只需要使用 R 代码构建您想要的查询:
像这样:
a = 100:104
my_query = paste("SELECT ID FROM TABLE WHERE ID IN (", toString(a), ")")
my_query
# "SELECT ID FROM TABLE WHERE ID IN ( 100, 101, 102, 103, 104 )"
x = dbGetQuery(mydb, my_query)
toString
comma-separates 输入,用在这里很合适。 sprintf()
使用 "fill-in-the-blank" 语法,对于像这样的东西,它通常比 paste()
更具可读性:
my_q = sprintf("SELECT ID FROM TABLE WHERE ID IN (%s)", toString(a))
my_q
# [1] "SELECT ID FROM TABLE WHERE ID IN (100, 101, 102, 103, 104)"
我正在尝试根据我已有的列向量获取 sql 文件行的查询。 sql 文件有一列 ID,而其余文件具有基于 ID 的信息。我有一个单独的我感兴趣的 ID 向量,我想知道是否有一种方法可以根据我拥有的 ID 向量查询信息和 ID 的行。
我试过了
mydb <- dbConnect(RSQLite::SQLite(), "name.db")
x = dbGetQuery(mydb, 'SELECT ID FROM table;')
它获取了所有的 ID,但我只想获取基于向量的特定 ID。我不能只在那里输入字符向量,因为我有大量数据。
a <- c(100,102,103,104..)
mydb <- dbConnect(RSQLite::SQLite(), "name.db")
x = dbGetQuery(mydb, 'SELECT ID FROM table==a ;')
这不仅给我我想要的 ID
有没有一种方法可以根据具有所需 ID # 的一列的向量来查询行?我们能否以某种方式让系统仅输出包含与我们提供的向量匹配的 ID 的行?
一个SQL查询是一个SQL编码的字符串。您只需要使用 R 代码构建您想要的查询:
像这样:
a = 100:104
my_query = paste("SELECT ID FROM TABLE WHERE ID IN (", toString(a), ")")
my_query
# "SELECT ID FROM TABLE WHERE ID IN ( 100, 101, 102, 103, 104 )"
x = dbGetQuery(mydb, my_query)
toString
comma-separates 输入,用在这里很合适。 sprintf()
使用 "fill-in-the-blank" 语法,对于像这样的东西,它通常比 paste()
更具可读性:
my_q = sprintf("SELECT ID FROM TABLE WHERE ID IN (%s)", toString(a))
my_q
# [1] "SELECT ID FROM TABLE WHERE ID IN (100, 101, 102, 103, 104)"