目錄
- Oracle 模糊查詢like用法
- 一、where子句中使用like關(guān)鍵字
- 二、在Oracle中提供了instr(strSource,strTarget)函數(shù)
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)文章!
您可能感興趣的文章:- Oracle使用like查詢時對下劃線的處理方法
- Oracle如何實現(xiàn)like多個值的查詢
- oracle sql語言模糊查詢--通配符like的使用教程詳解
- Oracle中Like與Instr模糊查詢性能大比拼