繁体   English   中英

dbGetQuery中的正则表达式不起作用

[英]Regular expression in dbGetQuery does not work

我想获取数据库中符合正则表达式条件的所有行。 该变量应以“ J12”,“ J13”,“ J14”或“ J15”开头。 这是我的尝试:

Data <- dbGetQuery(db, 
           "SELECT * FROM 'XXX.XXXX.XXX'
                   WHERE TYPE = 'xyz' AND [xyz_DIAG] LIKE '^J1[2-5]' ")

然后返回一个包含0行的data.frame。 当我发送查询时

Data <- dbGetQuery(db, 
           "SELECT * FROM 'XXX.XXXX.XXX'
                   WHERE TYPE = 'xyz'")

我得到一个非常大的data.frame然后我调用Data %>% setDT %>% .[str_detect(xyz_DIAG, "^J1[2-5]")]我得到了预期的结果,因为实际上有很多行满足该正则表达式。 我做错了什么吗?

目前, REGEXP运营商尚未添加到RSQLITE ,请参阅此拉取请求

因此,您需要“解开”正则表达式并使用ORed LIKE

Data <- dbGetQuery(db, 
       "SELECT * FROM 'XXX.XXXX.XXX'
               WHERE TYPE = 'xyz' AND ([xyz_DIAG] LIKE 'J12%' OR [xyz_DIAG] LIKE 'J13%' OR [xyz_DIAG] LIKE 'J14%' OR [xyz_DIAG] LIKE 'J15%') ")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM