Oracle 模糊查詢及l(fā)ike用法
Oracle 模糊查詢like用法
一、where子句中使用like關(guān)鍵字
我們可以在where子句中使用like關(guān)鍵字來達到Oracle模糊查詢的效果;在Where子句中,可以對datetime、char、varchar字段類型的列用Like關(guān)鍵字配合通配符來實現(xiàn)模糊查詢,
以下是可使用的通配符:
- % :零或者多個字符,使用%有三種情況
- 字段 like ‘%關(guān)鍵字%'字段包含”關(guān)鍵字”的記錄
- 字段 like ‘關(guān)鍵字%'字段以”關(guān)鍵字”開始的記錄
- 字段 like ‘%關(guān)鍵字'字段以”關(guān)鍵字”結(jié)束的記錄
例子:
SELECT * FROM [user] WHERE uname LIKE ‘%三%' //搜索結(jié)果:“張三”,“小三”、“三腳貓”,“貓三腳” 有“三” 的記錄全找出來。 SELECT * FROM [user] WHERE uname LIKE ‘%三' (從后開始匹配) //搜索結(jié)果:“張三”,“小三” //另外,如果需要找出uname中既有“三”又有“貓”的記錄,請使用and條件 SELECT *FROM [user] WHERE uname LIKE ‘%三%' AND uname LIKE ‘%貓%' 若使用SELECT * FROM [user] WHERE uname LIKE ‘%三%貓%'//雖然能搜索出“三腳貓”,但不能搜索出“貓三腳”。
1._
單一任何字符(下劃線)常用來限制表達式的字符長度語句:
例子:
SELECT * FROM [user] WHERE uname LIKE ‘三' //搜索結(jié)果:“貓三腳”這樣uname為三個字符且中間一個是“三”的; SELECT * FROM [user] WHERE uname LIKE ‘三__'; //搜索結(jié)果:“三腳貓”這樣uname為三個字符且第一個是“三”的;
2.[]
在某一范圍內(nèi)的字符,表示括號內(nèi)所列字符中的一個(類似正則表達式)。指定一個字符、字符串或范圍,要求所匹配對象為它們中的任一個。
例子:
SELECT * FROM [user] WHERE u_name LIKE ‘[張李王]三' //搜索結(jié)果:“張三”、“李三”、“王三”(而不是“張李王三”); //如 [ ]內(nèi)有一系列字符(01234、abcde之類的)則可略寫為“0-4”、“a-e” SELECT * FROM [user] WHERE u_name LIKE ‘老[1-9]' //搜索結(jié)果:“老1”、“老2”、……、“老9”;
3.[^]
不在某范圍內(nèi)的字符,用法與[ ]相反。
二、在Oracle中提供了instr(strSource,strTarget)函數(shù)
在Oracle中提供了instr(strSource,strTarget)函數(shù),比使用'%關(guān)鍵字%'的模式效率高很多。
instr函數(shù)也有三種情況:
- instr(字段,'關(guān)鍵字')>0相當于 字段like ‘%關(guān)鍵字%'
- instr(字段,'關(guān)鍵字')=1相當于 字段like ‘關(guān)鍵字%'
- instr(字段,'關(guān)鍵字')=0相當于 字段not like ‘%關(guān)鍵字%'
例子:
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用法的詳細內(nèi)容,更多關(guān)于Oracle 模糊查詢like用法的資料請關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信