首頁 > 資料庫 > Oracle > 主體

oracle中like的用法是什麼

WBOY
發布: 2022-03-02 17:08:39
原創
26362 人瀏覽過

在oracle中,like關鍵字可以與where子句配合使用,用於實現模糊查詢的效果,配合通配符使用可以限製表達式條件,語法為“SELECT*FROM user WHERE uname LIKE 通配符” 。

oracle中like的用法是什麼

本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。

oracle中like的用法是什麼

一、我們可以在where子句中使用like關鍵字來達到Oracle模糊查詢的效果;在Where子句中,可以對datetime、 char、varchar字段類型的列用Like關鍵字配合通配符來實現模糊查詢,以下是可使用的通配符: 

(1)% :零或多個字符,使用%有三種情況 

字段 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 '%三%貓%',雖然能搜尋「三腳貓」,但不能搜尋出「貓三腳」。

(2)_: 單一任何字元(底線)常用來限製表達式的字元長度語句: 

範例: 

SELECT * FROM [user] WHERE uname LIKE ‘三’
登入後複製

搜尋結果:「貓三腳」這樣uname為三個字元且中間一個是「三」的; 

SELECT * FROM [user] WHERE uname LIKE ‘三__’;
登入後複製

搜尋結果:「三腳貓」這樣uname為三個字元且第一個是「三」的;

(3)[]:在某一範圍內的字符,表示括號內所列字符中的一個(類似正則表達式)。指定一個字元、字串或範圍,要求所匹配物件為它們中的任一個。

範例: 

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」;

(4)[^]: 不在某個範圍內的字符,用法與[ ]相反。

二、在Oracle中提供了instr(strSource,strTarget)函數,比使用’%關鍵字%’的模式效率高很多。

instr函數也有三種情況: 

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;
登入後複製

推薦教學:《Oracle影片教學

以上是oracle中like的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板