sql查詢特殊字元
Ⅰ sql 特殊字元位置
DECLARE @str VARCHAR(150)
declare @result table(indexOfArisk int)
declare @strResult int
set @strResult = 0
SET @str='100.1*200.22*300.333*400.4444*500.55555*66*77'
while (charindex( '*', @str) != 0)
begin
set @strResult = @strResult + charindex( '*', @str)
insert into @result values(@strResult)
set @str = Substring(@str, charindex('*', @str) + 1, len(@str))
end
select * from @result
這個查詢能得到所有*的位置,根據你的需要獲取吧。
Wish it helps.
Ⅱ 模糊查詢sql語句的方法 有哪些注意事項
下面是我整理的模糊查詢sql語句的方法,希望能對各位讀者有所幫助。
怎樣模糊查詢sql語句
sql模糊查詢的語法為「SELECT column FROM table WHERE column LIKE 'pattern'」,一共有四種匹配模式。
%
表示任意0個或多個字元。可匹配任意類型和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。
_
表示任意單個字元。模糊查詢sql語句是匹余侍配單個任意字元,它常用來限製表達式的字元長度語句。
[ ]
表示括弧內所列字元中的一個(類似正則表達式)。指定一個字元、字元串或范圍,要求所匹配對象為它們中的任一個。
[^ ]
表示不在括弧所列之內的單個字元。其取值和 [] 相同,但它要求所匹配對象為指定字元以外的任一個字元。
sql查詢內容包含通配符時,由於通配符的緣故,導致我們查詢特殊字元「%」、「_」、「[」的語句無法正常實現,而把特殊字元用「[ ]」括起便可正常查詢。在不同的資料庫中,sql模糊搜索的語句會有不同,可在系統幫助文檔中了解。
模糊查詢sql語句有哪些注意事項
SQL模糊查詢,使用like比較關鍵字,加上SQL里的通配符,請參考以下:
1、LIKE』Mc%』 將搜索以字母 Mc 開頭的所有字元串(如 McBadden)。
2、LIKE』%inger』 將搜索以字母 inger 結尾的所有字元串(如 Ringer、Stringer)。
3、LIKE』%en%』 將搜索在任何位置包含字母 en 的豎賀吵所有字元串(如 Bennet、Green、McBadden)。
4、LIKE』_heryl』 將搜索以字母 heryl 結尾的所有六個字母的名稱(如 Cheryl、Sheryl)。
5、LIKE』[CK]ars[eo]n』 將搜索下列字元串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
6、LIKE』[M-Z]inger』 將搜索以字元串 inger 結尾、以從 M 到 Z 的任何單個字母開頭的所有名稱(如 Ringer)。
7、LIKE』M[^c]%』 將搜索以字母 M 開頭,並且第二個字母不是拍敬 c 的所有名稱(如MacFeather)。
模糊搜索的定義主要有兩種觀點
一種是系統允許被搜索信息和搜索提問之間存在一定的差異,這種差異就是「模糊」在搜索中的含義。例如,查找名字Smith時,就會找出與之相似的Smithe, Smythe, Smyth, Smitt等。
另一種是實質上的搜索系統自動進行的同義詞搜索。同義詞由系統的管理界面配置。例如,配置「計算機」與「computer」為同義詞後,搜索「計算機」,則包含「computer」的網頁也會出現在搜索結果中。
Ⅲ sql 模糊查詢 但是查的是 字元「%」
% 是通配符號,表示通配0個或多個字元。
如果你想查詢用戶里帶 % 的數據,應該採用以下語句
SELECT*FROMUsersWHEREUserNameLIKE'%[%]%'
希望能幫到你。
Ⅳ sql模糊查詢
模糊查詢內容豐富,用起來靈活隨便。此處就寫出其基本內容。
1,% :表示任意0個或多個字元。可匹配任意類型和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。
比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'
將會把u_name為「張三」,「張貓三」、「三腳貓」,「唐三藏」等等有「三」的記錄全找出來。
另外,如果需要找出u_name中既有「三」又有「貓」的記錄,請使用and條件
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%貓%'
若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%貓%'
雖然能搜索出「三腳貓」,但不能搜索出符合條件的「張貓三」。
2,_ : 表示任意單個字元。匹配單個任意字元,它常用來限製表達式的字元長度語句:
比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'
只找出「唐三藏」這樣u_name為三個字且中間一個字是「三」的;
再比如 SELECT * FROM [user] WHERE u_name LIKE '三__';
只找出「三腳貓」這樣name為三個字且第一個字是「三」的;
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,[^ ] :表示不在括弧所列之內的單個字元。其取值和 [] 相同,但它要求所匹配對象為指定字元以外的任一個字元。
比如 SELECT * FROM [user] WHERE u_name LIKE '[^張李王]三'
將找出不姓「張」、「李」、「王」的「趙三」、「孫三」等;
SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
將排除「老1」到「老4」,尋找「老5」、「老6」、……
由於通配符的緣故,導致我們查詢特殊字元「%」、「_」、「[」的語句無法正常實現,而把特殊字元用「[ ]」括起便可正常查詢。