Oracle Regexp_like 使用 AND 子句

Posted

技术标签:

【中文标题】Oracle Regexp_like 使用 AND 子句【英文标题】:Oracle Regexp_like using AND clause 【发布时间】:2015-05-13 00:03:17 【问题描述】:

我希望使用 regexp_like 在名称字段中查找所有出现的“Dr. Jones”。我可以做 OR(所有名字都带有 DR 或 JONES),但我需要两个名字都出现在字段中。

有没有一种简单的方法可以在不使用多个语句的情况下使用 regexp_like 来做到这一点?

我正在寻找捷径。下面的答案在一个简单的情况下给出了它。 我知道我可以拥有:

where regexp_like(color_code,'red|blue|green','i');

它会给我任何颜色代码的记录,其中包含这三个名称中的任何一个。 我正在寻找的是这样的:

where regexp_like(color_code,'red&blue&green','i');

这只会选择名称中包含所有三种颜色的记录,但它们可以按任意顺序排列:红蓝绿、绿紫蓝黑红、黄红橙绿蓝

都会列出来

【问题讨论】:

【参考方案1】:
select * from mytable
where regexp_like(txt,'(Dr.+Jones+)|(Jones.+Dr+)','i');

ok 去掉了 dr 之后的句号并允许切换单词

【讨论】:

这里是它的小提琴我添加了你的两个例子sqlfiddle.com/#!4/b78944/2 不,这是我想要的方式,谢谢!!!!一整天都在绞尽脑汁想办法解决这个问题 @user2744722 - 您应该使用更正的解决方案编辑您的原始答案,而不是用第二个响应污染线程。请删除您的原始答案。 (你也可以整理一下,这样在没有第一反应的情况下也有意义)。 更重要的是,您的 regex 包含 DR 和 JONES 的任何句子的误报。看看我的version of your SQLFiddle。包含我们不希望出现在结果集中的测试数据总是值得的。

以上是关于Oracle Regexp_like 使用 AND 子句的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别