首页 > 解决方案 > LIKE 使用 R 在 PostgreeSQL 中使用整数

问题描述

我需要从 postgree 下载一个表到 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和 put之类的东西vetor_id%

标签: sqlrpostgresqlwhere-clausesql-like

解决方案


这是你想要的吗?

WHERE id::text like ? || '%'

这会将整数转换id为字符串,并尝试将其与参数匹配。如果id 参数开头,则满足条件。

请注意,这使用了合法的查询参数(由问号表示):您应该习惯于参数化查询,而不是连接查询字符串中的变量:这样更简洁、更高效、更安全。


推荐阅读