首页 > 数据库技术 > 详细

Oracle多关键字查询

时间:2017-01-12 17:16:18      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:img   则表达式   -1   位置   eve   a-z   level   ora   def   

 因项目需要,在某查询页面的查询字段支持多关键字查询,支持空格隔开查询条件,故实现如下:

技术分享

 

 使用的原理是:ORACLE中的支持正则表达式的函数REGEXP_LIKE

‘|‘ 指明两项之间的一个选择。例子‘^([a-z]+|[0-9]+)$‘表示所有小写字母或数字组合成的字符串。

‘+‘ 匹配前面的子表达式一次或多次。

‘( )‘ 标记一个子表达式的开始和结束位置。

 

如需要查询的关键字为“杆塔 鸟巢”
select t.defect_phenomenon, t.defect_code, t.voltage_level
  from sp_pd_Defect t
 where (regexp_like(t.defect_phenomenon, (杆塔|鸟巢)+) or
       regexp_like(t.defect_code, (杆塔|鸟巢)+) or
       regexp_like(t.voltage_level, (杆塔|鸟巢)+));
 如图:
技术分享

如需要查询的关键字为“杆塔 鸟巢 110000”

select t.defect_phenomenon, t.defect_code, t.voltage_level
from sp_pd_Defect t
where (regexp_like(t.defect_phenomenon, (杆塔|鸟巢|110000)+) or
regexp_like(t.defect_code, (杆塔|鸟巢|110000)+) or
regexp_like(t.voltage_level, (杆塔|鸟巢|110000)+));

 如图:

技术分享

 

Oracle多关键字查询

标签:img   则表达式   -1   位置   eve   a-z   level   ora   def   

原文:http://www.cnblogs.com/ryanchancrj/p/6279039.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号