資料庫模糊查詢
『壹』 sql 怎麼實現模糊查詢
1、首先需要開啟資料庫管理工具,打開SQL語言編寫窗體。
『貳』 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」、……
由於通配符的緣故,導致我們查詢特殊字元「%」、「_」、「[」的語句無法正常實現,而把特殊字元用「[ ]」括起便可正常查詢。
『叄』 sql的模糊查詢
拆詞,把需要模糊查詢的字元串,SPLIT拆開 2個字為一組
然後UBOUND 這個字元串個數
for i=1 to ubound
str = " Select * from a where b like % 數組(0) % "
next
選擇出來以後 在做篩選
『肆』 怎樣做資料庫的模糊查詢
通配符有四種
1.
%
,表示多個字元中,例如:LIKE
"%com%",可以查詢出欄位時包含有com所有記錄
2.
_(下劃線)
,任意單個字元,例如:
LIKE
"_com',
可以查詢出欄位中是4個字母,且以com結尾的,'Ecom','Rcom'等
3.
[],指定范圍
([a-f])
或集合
([abcdef])
中的任何單個字元。例如:LIKE
'[C-P]arsen'
將查找以arsen
結尾且以介於
C
與
P
之間的任何記錄
4.
[^],不屬於指定范圍
([a-f])
或集合
([abcdef])
的任何單個字元。例如:LIKE
'de[^l]%'
將查找以
de
開始且其後的字母不為
l
的所有記錄。
以上通配符,我只在SQLServer和sybase中用過,其他的資料庫是否一樣,我不能保證。
『伍』 SQL資料庫怎麼實現模糊查詢
實現的方法和詳細的操作步驟如下:
1、第一步,按「Ctrl + N」創建一個SQL查詢,如下圖所示,然後進入下一步。
『陸』 SQL中如何進行模糊查詢
譬如一張表 Table 中列名 StrVal 值為 aabbcc 那麼要模糊查詢 bb,不用LIKE而使用CharIndexSelect * From Table WHere CharIndex('M', StrVal) > 0
『柒』 SQL模糊查詢語句怎麼寫啊
1、假設表名為proct,商品名為name,簡界為remark.則可如下寫:select [name],[remark] from proct name like '%aa%' or remark like '%aa%'.注:上面單引號的aa你表模糊查詢輸入的字元。
2、select * from (表名) where (搜索名稱)like '%%' and id like '%(簡介)%'
3、用 Like 子句。比如:Select * from [TableName] where [名稱] Like '%SQL%' and [簡介] like '%Software%'這就是查詢 [名稱]欄位中包含 「SQL」、並且[簡介]欄位中包含 「Software」 的記錄。
4、selet * from userwhere name like '%小%'order by id ascasc代表升序 desc代表降序。
(7)資料庫模糊查詢擴展閱讀:
模糊搜索的定義主要有兩種觀點。
一是系統允許被搜索信息和搜索提問之間存在一定的差異,這種差異就是「模糊」在搜索中的含義。例如,查找名字Smith時,就會找出與之相似的Smithe, Smythe, Smyth, Smitt等。
二是實質上的搜索系統自動進行的同義詞搜索。同義詞由系統的管理界面配置。例如,配置「計算機」與「computer」為同義詞後,搜索「計算機」,則包含「computer」的網頁也會出現在搜索結果中。
將本地圖片輸入到圖片搜索框,
1、假如你的圖片帶有意義的標題,比如「衣服」,那麼搜索結果會顯示相關文本搜索結果
2、假如你的圖片標題沒有任何含義,搜索結果只顯示相關圖片。
3、搜索精準度隨不同圖片可達到的滿意程度不同,往往越是主流商業圖片越精準
目前像網路、谷歌等搜索引擎及淘寶等平台均可實現此應用。
文本模糊搜索
搜索引擎或門戶網站搜索:將文本輸入搜索框,選擇模糊搜索模式,即可得到匹配結果。
資料庫搜索:一般模糊查詢語句如下:SELECT 欄位 FROM 表 WHERE 某欄位 Like 條件。
其中關於條件,SQL提供了四種匹配模式:
1、% :表示任意0個或多個字元。可匹配任意類型和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。
2、_ : 表示任意單個字元。匹配單個任意字元,它常用來限製表達式的字元長度語句:
3、[ ] :表示括弧內所列字元中的一個(類似正則表達式)。指定一個字元、字元串或范圍,要求所匹配對象為它們中的任一個。
4、[^ ] :表示不在括弧所列之內的單個字元。其取值和 [] 相同,但它要求所匹配對象為指定字元以外的任一個字元。
5,查詢內容包含通配符時
由於通配符的緣故,導致我們查詢特殊字元「%」、「_」、「[」的語句無法正常實現,而把特殊字元用「[ ]」括起便可正常查詢。
在不同的資料庫中,模糊搜索的語句會有不同,可在系統幫助文檔中了解。
『捌』 資料庫的模糊查詢
明確的告訴你。。。就這么直接檢索不行。。。
大家不知道看明白沒有:這是用確定數據檢索不確定數據。。。不是你們說的用通配符能解決的事情。
數據檢索的本質是用模式(就是不確定數據),檢索符合模式的確定值。
確定性就是唯一性,而模式是不確定的。。。
我們輸入IG84317183的時候,這是個確定值,是唯一的。而這個唯一值可能屬於的模式是無窮的或者是數量非常巨大的
從數學上來說,怎麼可能用確定值用檢索不確定值?
就像你說的:可能是IG8?????,而這幾個問號可能的組合就有10萬。也可能是I?G8431???,或者其他。
所以很簡單,唯一可行的方法是倒過來,用你資料庫內的內容來匹配這個確定值。因為雖然模式是不確定的,但是你資料庫內儲存的是有限的確定的。
首先將你資料庫內的佔位符「?」,替換成通配符,如果「?」只可以代表一位數則替換為「_」或者「?」本身,如果一個「?」可以代表幾個字元則替換為「%」或者是「*」。因為不知道你的庫規不規范,如果是規范的不知道的位數都標識為IG8???????這種,長度也都一樣的話,可能就不用替換,因為?本身就是通配符(表示一位的)。因為不知道你用的是SQL SERVER,ORACLE還是其他的。
然後我們就可以用'IG84317183' 去 LIKE 你資料庫里的帶通配符的模式。
很簡單的語句就是:
如果有表「紙幣表」,欄位名是「紙幣號」,則:
替換為「%」的
select * from 紙幣表 where 'IG84317183' LIKE REPLACE(紙幣號,'?','%');
也可以替換為「_」的:
select * from 紙幣表 where 'IG84317183' LIKE REPLACE(紙幣號,'?','_');
如果不替換就直接:
select * from 紙幣表 where 'IG84317183' LIKE 紙幣號;
注意LIKE的兩邊跟我們平時用的是反的(一般來說是 欄位 like '某個值',現在是 '某個值' like 欄位,也就是說將欄位中的值作為通配符表達式 )。就這樣,很簡單,很簡單就能實現。只要你把道理想通。
但是,請你注意:這樣檢索出來的東西不能保證對應。還是那個道理,模式實際上是不確定的,雖然你可以資料庫中檢索出來,你就能說:
IG84???183這條數據是IG84317183 ???。在現實中肯定不能,除非你在現實中有很強的業務規則對應。否則是很危險的。
『玖』 Mysql如何對資料庫進行模糊查詢
例子如下:SELCET * FROM T-USER U WHERE CONCAT(U.LASTNAME,U.FIRSTNAME) LIKE '%$LSP_NAME$%'
LASTNAME 欄位是姓;
FIRSTNAME欄位是名字;
『拾』 【資料庫的模糊查詢】
可以這樣寫:
select * from table1 WHERE job2 LIKE '%/%%' ESCAPE '/'