整理 關於sqlite的特殊字元轉義及萬用字元

2021-06-09 17:16:13 字數 1191 閱讀 5784

***1.sqlite中的轉義符

select * from table where number like  '%/%%' escape '/' 

sqlite3資料庫在搜尋的時候,一些特殊的字元需要進行轉義, 

具體的轉義如下:  / 

->  //

' -> 

''[ 

->  /[

] ->  /]

% ->  /%

& ->  /&

_ ->  /_

( ->  /(

) ->  /)

需要注意的是,特殊字元並沒有用反斜槓「\」表示轉義符。

這句話是不正確的,至少在sqliteman中是可以使用'\'或'/'作為轉義符的。

以下查詢語句,都可以查詢出相同的結果:

select _id, _data from images where _data like '%/"hello/"%' escape '/';

select _id, _data from images where _data like '%\"hello\"%' escape '\';

public static string sqliteescape(string keyword)

2.sql語句中表示單個字元和任意多個字元的萬用字元%

包含零個或多個字元的任意字串。

where title like '%computer%' 將查詢在書名中任意位置包含單詞 "computer" 的所有書名。

_(下劃線)

任何單個字元。

where au_fname like '_ean' 將查詢以 ean 結尾的所有 4 個字母的名字(dean、sean 等)。

[ ]指定範圍 ([a-f]) 或集合 ([abcdef]) 中的任何單個字元。

where au_lname like '[c-p]arsen' 將查詢以 arsen 結尾並且以介於 c 與 p 之間的任何單個字元開始的作者姓氏,例如 carsen、larsen、karsen 等。

[^]不屬於指定範圍 ([a-f]) 或集合 ([abcdef]) 的任何單個字元。

where au_lname like 'de[^l]%' 將查詢以 de 開始並且其後的字母不為 l 的所有作者的姓氏。

關於jxl寫入特殊字元問題

目前我在應用中碰到乙個情況,就是在excel裡寫入英文的單引號 在單元格裡是不顯示出來的。但是通過jxl寫入卻變成了中文的單引號 如下 jxl.write.label label new jxl.write.label j,i,ws.addcell label 注意這裡的是英文版的單引號,但是寫入到...

關於字串 zero 的特殊解法

字串 zero 給你乙個只包含 0 與 1 的字串s,你可以對這個字串進行操作,每次操作將字串中任意乙個字元移動到字串的任意位置,例如s 0010 你可以將首位的0移動到末尾位置,使得s 0100 現在有q次詢問,每次詢問給出乙個操作次數上限k,每次詢問你需要回答在對字串s進行不超過k次操作後,字串...

python中關於url中特殊字元的編碼和解碼

編碼 from urllib.parse import quote text quote text,utf 8 解碼 from urllib.parse import unquote text unquote text,utf 8 假如url 乙個ajax請求,url的字元 等需要轉碼才能傳遞 那麼...