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

来源:互联网 发布:淘宝杂货铺 编辑:程序博客网 时间:2024/06/06 18:47

      在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||'%'

1 0