Oracle多關鍵字查詢


 因項目需要,在某查詢頁面的查詢字段支持多關鍵字查詢,支持空格隔開查詢條件,故實現如下:

 

 使用的原理是: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)+'));

 如圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM