您的位置:首页 > 数据库 > Oracle

关于ORACLE中使用LIKE进行多字段模糊匹配的一种解决思路

2016-05-11 10:52 465 查看
在ORACLE使用过程中经常会碰到查询一张表里的相关信息而需要用多个字段对其中一列进行模糊匹配的情况,最常见的做法是使用or连接多个查询子语句。使用这个方法在匹配字段多时就会显得很繁琐且容易出错和遗漏。比如我工作中要在表A中查询对应列puinfo中前六位为以下选项的内容

122221

122226

122231

122236

122241

122246

122251

122256

122261

122211

122216

122201

122203

122227

122233

采用以上方法,查询语句就只能写成select * from A t where t.puinfo like '122221%' or t.puinfo like '122226%' or t.puinfo like '122231%' or .....

后面省略12个子语句。

我想提供的一种思路是这样的在oracle数据库里建一个临时表用于存储这些要匹配的字段,然后在查询语句里只让要匹配的列跟临时表的对应的这个字段进行匹配。例如我新建了一个临时表test 并在其puinfo列里存储了以上15个要用于匹配的字段。这样查询语句就可以写成select * from A t,test b where t.puinfo like b.puinfo||'%'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: