Oracle 模糊查詢及l(fā)ike用法
Oracle 模糊查詢like用法
一、where子句中使用like關鍵字
我們可以在where子句中使用like關鍵字來達到Oracle模糊查詢的效果;在Where子句中,可以對datetime、char、varchar字段類型的列用Like關鍵字配合通配符來實現(xiàn)模糊查詢,
以下是可使用的通配符:
- % :零或者多個字符,使用%有三種情況
- 字段 like ‘%關鍵字%'字段包含”關鍵字”的記錄
- 字段 like ‘關鍵字%'字段以”關鍵字”開始的記錄
- 字段 like ‘%關鍵字'字段以”關鍵字”結束的記錄
例子:
SELECT * FROM [user] WHERE uname LIKE ‘%三%' //搜索結果:“張三”,“小三”、“三腳貓”,“貓三腳” 有“三” 的記錄全找出來。 SELECT * FROM [user] WHERE uname LIKE ‘%三' (從后開始匹配) //搜索結果:“張三”,“小三” //另外,如果需要找出uname中既有“三”又有“貓”的記錄,請使用and條件 SELECT *FROM [user] WHERE uname LIKE ‘%三%' AND uname LIKE ‘%貓%' 若使用SELECT * FROM [user] WHERE uname LIKE ‘%三%貓%'//雖然能搜索出“三腳貓”,但不能搜索出“貓三腳”。
1._
單一任何字符(下劃線)常用來限制表達式的字符長度語句:
例子:
SELECT * FROM [user] WHERE uname LIKE ‘三' //搜索結果:“貓三腳”這樣uname為三個字符且中間一個是“三”的; SELECT * FROM [user] WHERE uname LIKE ‘三__'; //搜索結果:“三腳貓”這樣uname為三個字符且第一個是“三”的;
2.[]
在某一范圍內的字符,表示括號內所列字符中的一個(類似正則表達式)。指定一個字符、字符串或范圍,要求所匹配對象為它們中的任一個。
例子:
SELECT * FROM [user] WHERE u_name LIKE ‘[張李王]三' //搜索結果:“張三”、“李三”、“王三”(而不是“張李王三”); //如 [ ]內有一系列字符(01234、abcde之類的)則可略寫為“0-4”、“a-e” SELECT * FROM [user] WHERE u_name LIKE ‘老[1-9]' //搜索結果:“老1”、“老2”、……、“老9”;
3.[^]
不在某范圍內的字符,用法與[ ]相反。
二、在Oracle中提供了instr(strSource,strTarget)函數(shù)
在Oracle中提供了instr(strSource,strTarget)函數(shù),比使用'%關鍵字%'的模式效率高很多。
instr函數(shù)也有三種情況:
- instr(字段,'關鍵字')>0相當于 字段like ‘%關鍵字%'
- instr(字段,'關鍵字')=1相當于 字段like ‘關鍵字%'
- instr(字段,'關鍵字')=0相當于 字段not like ‘%關鍵字%'
例子:
SELECT * FROM [user] WHEREinstr(uname ,'三')>0
用法參照上面的Like 即可
特殊用法:
select id, namefrom user where instr(‘101914, 104703', id) > 0;
它等價于
select id, namefrom user where id = 101914 or id = 104703;
以上就是where子句中Oracle 模糊查詢like用法的詳細內容,更多關于Oracle 模糊查詢like用法的資料請關注腳本之家其它相關文章!
相關文章
Oracle的RBO和CBO詳細介紹和優(yōu)化模式設置方法
這篇文章主要介紹了Oracle的RBO和CBO詳細介紹和優(yōu)化模式設置方法,RBO即基于規(guī)則的優(yōu)化方式(Rule-Based Optimization),CBO即基于代價的優(yōu)化方式(Cost-Based Optimization),需要的朋友可以參考下2014-07-07使用工具 plsqldev將Excel導入Oracle數(shù)據(jù)庫
這篇文章主要介紹了使用工具 plsqldev將Excel導入Oracle數(shù)據(jù)庫,需要的朋友可以參考下2014-08-08Oracle數(shù)據(jù)庫實現(xiàn)遠程訪問方法
Oracle數(shù)據(jù)庫的遠程連接可以通過多種方式來實現(xiàn),下面這篇文章主要給大家介紹了關于Oracle數(shù)據(jù)庫實現(xiàn)遠程訪問的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06Oracle數(shù)據(jù)創(chuàng)建虛擬列和復合觸發(fā)器的方法
Oracle的虛擬列解決了很多需要使用觸發(fā)器或者需要通過代碼進行計算統(tǒng)計產(chǎn)生數(shù)據(jù)信息的問題,而復合觸發(fā)器實際上是作為一個整體定義的四個不同的觸發(fā)器來執(zhí)行操作,需要了解的朋友可以參考下2015-08-08