首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >dbGetQuery中的正则表达式不起作用

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

Stack Overflow用户
提问于 2019-03-14 19:04:47
回答 1查看 126关注 0票数 0

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

代码语言:javascript
运行
复制
Data <- dbGetQuery(db, 
           "SELECT * FROM 'XXX.XXXX.XXX'
                   WHERE TYPE = 'xyz' AND [xyz_DIAG] LIKE '^J1[2-5]' ")

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

代码语言:javascript
运行
复制
Data <- dbGetQuery(db, 
           "SELECT * FROM 'XXX.XXXX.XXX'
                   WHERE TYPE = 'xyz'")

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

EN

回答 1

Stack Overflow用户

发布于 2019-03-14 20:54:27

RSQLITE暂未增加REGEXP运算符,请参见this pull request

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

代码语言:javascript
运行
复制
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%') ")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55160878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档