SQL中萬用字元 轉義符與括號的使用

2021-09-02 10:55:17 字數 1777 閱讀 4331

今天使用搜尋功能是:發現 1、商品查詢中可以加萬用字元「%」。例如查詢商品"龍餅",輸入「%龍」也可以查詢

keyword = keyword.replaceall("%", "\\\\%");

查詢後發現sql中直接用 like '%"+keyword+"%'"; 所以導致用%萬用字元依然可以匹配

找到兩個解決方式

1:使用instr()函式 sql + " and instr(t1.fname, '"+keyword+"')>0";oacrle和mysql可以使用

2。 int i=keyword.indexof("%");

if(i==-1)else

sql中萬用字元、轉義符與括號的使用 2010-03-16 18:27:42

分類: oracle

一、搜尋萬用字元字元的說明

可以搜尋萬用字元字元。有兩種方法可指定平常用作萬用字元的字元:

使用 escape 關鍵字定義轉義符。在模式中,當轉義符置於萬用字元之前時,該萬用字元就解釋為普通字元。例如,要搜尋在任意位置包含字串 5% 的字串,請使用:

where columna like '%5/%%' escape '/'

在上述 like 子句中,前導和結尾百分號 (%) 解釋為萬用字元,而斜槓 (/) 之後的百分號解釋為字元 %。

在方括號 ([ ]) 中只包含萬用字元本身。要搜尋破折號 (-) 而不是用它指定搜尋範圍,請將破折號指定為方括號內的第乙個字元:

where columna like '9[-]5'

下表顯示了括在方括號內的萬用字元的用法。

符號 含義

like '5[%]' 5%

like '5%' 5 後跟 0 個或更多字元的字串

like '[_]n' _n

like '_n' an, in, on (and so on)

like '[a-cdf]' a, b, c, d, or f

like '[-acdf]' -, a, c, d, or f

like '[ [ ]' [

like ']' ]

二、例項說明:

在表personalmember中查詢strloginname欄位中含有"["的記錄。

可用三條語句:

1、select strloginname,* from personalmember where strloginname like '%\[%' escape '\'

2、(說明"\"與"/"均可與escape關鍵字結合作為轉義符)

select strloginname,* from personalmember where strloginname like '%/[%' escape '/'

3、select strloginname,* from dbo.personalmember where charindex('[',strloginname)>0

c++ 的轉義字元是:\

sql 的轉義字元是:'(單引號)

例:select * from tbl where uyear='''06'

請注意其中紅色背景的單引號,它即表示轉義字元,如果我們省略,則整個語句會出錯,轉義字元不會輸出,上例中 uyear 的實際條件值為 '06,而不是 ''06

為什麼不能省略呢,假如我們省略,上句變成:select * from tbl where uyear=''06'

由於在 sql 中單引號表示字串的開始和結束符號,於是 sql 直譯器會認為語句中灰色背景的為字串,其後的語句顯然是個錯誤的語句,當然會報錯,為了解決字串的單引號問題,就出現了轉義字元單。

SQL中萬用字元 轉義符與括號的使用

今天使用搜尋功能是 發現 1 商品查詢中可以加萬用字元 例如查詢商品 龍餅 輸入 龍 也可以查詢 keyword keyword.replaceall 查詢後發現sql中直接用 like keyword 所以導致用 萬用字元依然可以匹配 找到兩個解決方式 1 使用instr 函式 sql and i...

SQL中like語句萬用字元 轉義符與括號的使用

可以搜尋萬用字元字元。有兩種方法可指定平常用作萬用字元的字元 使用 escape 關鍵字定義轉義符。在模式中,當轉義符置於萬用字元之前時,該萬用字元就解釋為普通字元。例如,要搜尋在任意位置包含字串 5 的字串,請使用 where columnalike 5 escape 在上述 like 子句中,前...

SQL中like語句萬用字元 轉義符與括號的使用

可以搜尋萬用字元字元。有兩種方法可指定平常用作萬用字元的字元 使用 escape 關鍵字定義轉義符。在模式中,當轉義符置於萬用字元之前時,該萬用字元就解釋為普通字元。例如,要搜尋在任意位置包含字串 5 的字串,請使用 where columna like 5 escape 在上述 like 子句中,...