LIKE 使用 R 在 PostgreSQL 中使用整数
LIKE with integers in PostgreeSQL using R
我需要从 postgree 下载 table 到 R,但被 INT 的一部分过滤。
我一直在努力:
library(RPostgreSQL)
con <- dbConnect(PostgreSQL(), user= "#####", dbname="######",password="#####"
,host="#####", port='######')
vetor_id <- c("83052407","10406587","12272377")
match_id <- dbGetQuery(con,paste("
SELECT *
FROM public.data2015
WHERE id IN ('", paste(vetor_id,collapse = "','"),"')
",sep = ""))
dbDisconnect(con)
我也试过CONTAINS
但是没用。WHERE Contains(id,", paste(vetor_id,collapse = " OR "),"')
id
是 INT 而 vetor_id
只是值的一部分。我的意思是,vector_id = 83052407 必须找到 id = 83052407000132.
如何使用 LIKE
之类的东西并输入 vetor_id%
?
这是你想要的吗?
WHERE id::text like ? || '%'
这会将整数 id
转换为字符串,并尝试将其与参数进行匹配。如果id
以参数开头,则满足条件。
请注意,这使用了合法的查询参数(由问号表示):您应该习惯于对查询进行参数化,而不是在查询字符串中连接变量:这样更简洁、更高效、更安全。
我需要从 postgree 下载 table 到 R,但被 INT 的一部分过滤。
我一直在努力:
library(RPostgreSQL)
con <- dbConnect(PostgreSQL(), user= "#####", dbname="######",password="#####"
,host="#####", port='######')
vetor_id <- c("83052407","10406587","12272377")
match_id <- dbGetQuery(con,paste("
SELECT *
FROM public.data2015
WHERE id IN ('", paste(vetor_id,collapse = "','"),"')
",sep = ""))
dbDisconnect(con)
我也试过CONTAINS
但是没用。WHERE Contains(id,", paste(vetor_id,collapse = " OR "),"')
id
是 INT 而 vetor_id
只是值的一部分。我的意思是,vector_id = 83052407 必须找到 id = 83052407000132.
如何使用 LIKE
之类的东西并输入 vetor_id%
?
这是你想要的吗?
WHERE id::text like ? || '%'
这会将整数 id
转换为字符串,并尝试将其与参数进行匹配。如果id
以参数开头,则满足条件。
请注意,这使用了合法的查询参数(由问号表示):您应该习惯于对查询进行参数化,而不是在查询字符串中连接变量:这样更简洁、更高效、更安全。