Oracle 模糊查詢及l(fā)ike用法
Oracle 模糊查詢like用法
一、where子句中使用like關(guān)鍵字
我們可以在where子句中使用like關(guān)鍵字來達(dá)到Oracle模糊查詢的效果;在Where子句中,可以對(duì)datetime、char、varchar字段類型的列用Like關(guān)鍵字配合通配符來實(shí)現(xiàn)模糊查詢,
以下是可使用的通配符:
- % :零或者多個(gè)字符,使用%有三種情況
- 字段 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中既有“三”又有“貓”的記錄,請(qǐng)使用and條件 SELECT *FROM [user] WHERE uname LIKE ‘%三%' AND uname LIKE ‘%貓%' 若使用SELECT * FROM [user] WHERE uname LIKE ‘%三%貓%'//雖然能搜索出“三腳貓”,但不能搜索出“貓三腳”。
1._
單一任何字符(下劃線)常用來限制表達(dá)式的字符長(zhǎng)度語句:
例子:
SELECT * FROM [user] WHERE uname LIKE ‘三' //搜索結(jié)果:“貓三腳”這樣uname為三個(gè)字符且中間一個(gè)是“三”的; SELECT * FROM [user] WHERE uname LIKE ‘三__'; //搜索結(jié)果:“三腳貓”這樣uname為三個(gè)字符且第一個(gè)是“三”的;
2.[]
在某一范圍內(nèi)的字符,表示括號(hào)內(nèi)所列字符中的一個(gè)(類似正則表達(dá)式)。指定一個(gè)字符、字符串或范圍,要求所匹配對(duì)象為它們中的任一個(gè)。
例子:
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相當(dāng)于 字段like ‘%關(guān)鍵字%'
- instr(字段,'關(guān)鍵字')=1相當(dāng)于 字段like ‘關(guān)鍵字%'
- instr(字段,'關(guān)鍵字')=0相當(dāng)于 字段not like ‘%關(guān)鍵字%'
例子:
SELECT * FROM [user] WHEREinstr(uname ,'三')>0
用法參照上面的Like 即可
特殊用法:
select id, namefrom user where instr(‘101914, 104703', id) > 0;
它等價(jià)于
select id, namefrom user where id = 101914 or id = 104703;
以上就是where子句中Oracle 模糊查詢like用法的詳細(xì)內(nèi)容,更多關(guān)于Oracle 模糊查詢like用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Oracle的RBO和CBO詳細(xì)介紹和優(yōu)化模式設(shè)置方法
這篇文章主要介紹了Oracle的RBO和CBO詳細(xì)介紹和優(yōu)化模式設(shè)置方法,RBO即基于規(guī)則的優(yōu)化方式(Rule-Based Optimization),CBO即基于代價(jià)的優(yōu)化方式(Cost-Based Optimization),需要的朋友可以參考下2014-07-07使用工具 plsqldev將Excel導(dǎo)入Oracle數(shù)據(jù)庫(kù)
這篇文章主要介紹了使用工具 plsqldev將Excel導(dǎo)入Oracle數(shù)據(jù)庫(kù),需要的朋友可以參考下2014-08-08Oracle數(shù)據(jù)庫(kù)如何刪除歸檔日志文件
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)如何刪除歸檔日志文件的相關(guān)資料,當(dāng)Oracle中的歸檔日志空間滿時(shí),則需要把它清空,否則將會(huì)影響數(shù)據(jù)庫(kù)正常運(yùn)行,將無法正常登入ORACLE,需要的朋友可以參考下2023-11-11Oracle數(shù)據(jù)庫(kù)實(shí)現(xiàn)遠(yuǎn)程訪問方法
Oracle數(shù)據(jù)庫(kù)的遠(yuǎn)程連接可以通過多種方式來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)實(shí)現(xiàn)遠(yuǎn)程訪問的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Oracle數(shù)據(jù)泵的導(dǎo)入與導(dǎo)出實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)泵的導(dǎo)入與導(dǎo)出的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Oracle數(shù)據(jù)創(chuàng)建虛擬列和復(fù)合觸發(fā)器的方法
Oracle的虛擬列解決了很多需要使用觸發(fā)器或者需要通過代碼進(jìn)行計(jì)算統(tǒng)計(jì)產(chǎn)生數(shù)據(jù)信息的問題,而復(fù)合觸發(fā)器實(shí)際上是作為一個(gè)整體定義的四個(gè)不同的觸發(fā)器來執(zhí)行操作,需要了解的朋友可以參考下2015-08-08