博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle数据库模糊查询匹配多个字符串
阅读量:5008 次
发布时间:2019-06-12

本文共 699 字,大约阅读时间需要 2 分钟。

一、查询包含某些字段的记录(包含其中一个就符合):

对需要匹配的字符串建一个表 KEY_TABLE

ID KEYWORD TYPE
1 字符串1 1
2 字符串2 1
3 字符串3 1

SELECT * FROM MAIN_TABLE mt ,KEY_TABLE s

WHERE mt.matching LIKE '%'||s.keyword||'%' (or)

二、 查询不包含这些字段的记录:

1、SELECT * FROM MAIN_TABLE mt 

WHERE  not regexp_like (mt.matching,'字符串1|字符串2|字符串3');

(也可以利用列转行函数:

SELECT * FROM MAIN_TABLE mt ,(SELECT t.type,listagg(t.keyword,'|') WITHIN GROUP(ORDER BY t.type) AS allkey

FROM KEY_TABLE t GROUP BY t.type) kt

WHERE  not regexp_like (mt.matching,kt.keyword)  and kt.type=1;

2、SELECT * FROM MAIN_TABLE mt 

WHERE mt.matching  not like '%字符串1%' and  mt.matching  not like '%字符串2%'  and mt.matching  not like '%字符串3%'; (效率比较高)

转载于:https://www.cnblogs.com/10veAnime/p/9953356.html

你可能感兴趣的文章
Cocos2dx 3.0 过渡篇(二十五)死不了的贪食蛇(触摸版)
查看>>
XPath定位时,使用文本的方法小技巧。
查看>>
EBS 信用检查(二)
查看>>
JZOJ 1781. Number
查看>>
.NET学习杂记
查看>>
高光导航、文字模糊
查看>>
nhibernate3 linq的where操作
查看>>
centos下Elasticsearch数据迁移与备份
查看>>
设置进程和线程的优先级
查看>>
android studio环境下创建menu问题(标题栏显示问题)
查看>>
MVC其实很简单(Django框架)
查看>>
UIScrollView 原理
查看>>
linux在tomcat中指定jdk
查看>>
vue学习(二)Vue常用指令
查看>>
《中国作者英文科学写作中的常见语法问题(一)》
查看>>
如何撰写SCI论文的讨论部分?——经典结构 – 俗称“倒漏斗型。
查看>>
织梦dedeCMS数据库结构字段说明-简略说明
查看>>
Cocoa touch(二):UIApplication
查看>>
【数据结构与算法C】利用两个栈S1S2模拟一个队列,用栈的基本操作实线EnQueue,DeQueue,QueueEmpty ...
查看>>
Python-编码和二进制-运算符
查看>>