我們可以在where子句中使用like關(guān)鍵字來達(dá)到Oracle模糊查詢的效果;在Where子句中,可以對(duì)datetime、char、varchar字段類型的列用Like關(guān)鍵字配合通配符來實(shí)現(xiàn)模糊查詢,
以下是可使用的通配符:
例子:
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 ‘%三%貓%'//雖然能搜索出“三腳貓”,但不能搜索出“貓三腳”。
單一任何字符(下劃線)常用來限制表達(dá)式的字符長(zhǎng)度語句:
例子:
SELECT * FROM [user] WHERE uname LIKE ‘三' //搜索結(jié)果:“貓三腳”這樣uname為三個(gè)字符且中間一個(gè)是“三”的; SELECT * FROM [user] WHERE uname LIKE ‘三__'; //搜索結(jié)果:“三腳貓”這樣uname為三個(gè)字符且第一個(gè)是“三”的;
在某一范圍內(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”;
不在某范圍內(nèi)的字符,用法與[ ]相反。
在Oracle中提供了instr(strSource,strTarget)函數(shù),比使用'%關(guān)鍵字%'的模式效率高很多。
instr函數(shù)也有三種情況:
例子:
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)文章!
標(biāo)簽:泰安 焦作 酒泉 銀川 柳州 梧州 河源 南陽
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle 模糊查詢及l(fā)ike用法》,本文關(guān)鍵詞 Oracle,模糊,查詢,及,like,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。