【问题标题】:LIKE with integers in PostgreeSQL using RLIKE 使用 R 在 PostgreSQL 中使用整数
【发布时间】:2020-08-01 21:01:25
【问题描述】:

我需要从 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 之类的东西并输入 vetor_id%

【问题讨论】:

    标签: sql r postgresql where-clause sql-like


    【解决方案1】:

    这是你想要的吗?

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

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

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

    【讨论】:

    • 非常感谢!但是,我不明白我该如何改进。我的意思是,在这个例子中,向量中只有 3 个值。但在我的真实数据中,我有很多。
    猜你喜欢
    • 2017-03-14
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    相关资源
    最近更新 更多