資料庫模糊匹配
1. sql模糊查詢
查詢name屬性中包含abc的內容
select * from XXX where name like '%abc%'
2. SQL中如何進行模糊查詢
譬如一張表
Table
中列名
StrVal
值為
aabbcc
那麼要模糊查詢
bb,不用LIKE而使用CharIndex
Select
*
From
Table
WHere
CharIndex('M',
StrVal)
>
0
3. 在SQL資料庫中怎樣實現模糊查找匹配。
使用 like
例如,查詢帶「螞蟻」的某欄位內容記錄,則如下寫語句:
select * from table where field1 like '%螞蟻%'
4. SQL模糊匹配
模糊匹配的准則是什麼?
select *
from a inner join b on a.公司名稱 like '%' + b.公司名稱 + '%' or b.公司名稱 like '%' + a.公司名稱 + '%'
這個語句是返回a的公司名稱包含b的公司名稱,或者b的公司名稱包含a的公司名稱
語句的效率非常非常差!
比如a中有個公司叫可口可樂,b中有個公司叫可口可樂中國,那這個結果會匹配成功。
但是如果a有個公司叫可口可樂中國實業,b中有個公司叫可口可樂中國飲料,這種情況就不會匹配成功。
5. SQL資料庫怎麼實現模糊查詢
實現的方法和詳細的操作步驟如下:
1、第一步,按「Ctrl + N」創建一個SQL查詢,如下圖所示,然後進入下一步。
6. 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)。
-------------------------------------------------
下 面這句查詢字元串是我以前寫的,根據變數 zipcode_key 在郵政編碼表 zipcode 中查詢對應的數據,這句是判斷變數 zipcode_key 為非數字時的查詢語句,用 % 來匹配任意長度的字元串,從表中地址、市、省三列中查詢包含關鍵字的所有數據項,並按省、市、地址排序。這個例子比較簡單,只要你理解了方法就可以寫出更 復雜的查詢語句。
sql = "select * from zipcode where (address like'%" & zipcode_key & "%') or (city like'%" & zipcode_key & "%') or (province like'%" & zipcode_key & "%') order by province,city,address
存儲過程中使用模糊查詢的例子:
SELECT * FROM Questions where QTitle like ' % [ '+ @KeyWord +' ] % ' and IsFinish = @IsFinsih
語句中成對的方括弧 是書寫格式的關鍵。
7. 資料庫的模糊查詢
明確的告訴你。。。就這么直接檢索不行。。。
大家不知道看明白沒有:這是用確定數據檢索不確定數據。。。不是你們說的用通配符能解決的事情。
數據檢索的本質是用模式(就是不確定數據),檢索符合模式的確定值。
確定性就是唯一性,而模式是不確定的。。。
我們輸入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 ???。在現實中肯定不能,除非你在現實中有很強的業務規則對應。否則是很危險的。
8. 怎樣做資料庫的模糊查詢
通配符有四種
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中用過,其他的資料庫是否一樣,我不能保證。
9. 資料庫SQL模糊匹配查詢,求求求
傳一個變數值,變數值為你想查詢輸入的值,然後SQL語句為
SQL = select 表別名.你的欄位名 from 表 as 表別名 where 表別名.條件欄位名 like '%變數%';
例:<表名為:abc,存放地名的欄位為:xyz>
String Str = "惠州";
String StrSQL = "select a.xyz as add from abc as a where a.xyz like "'%"+Str+"%'";
10. 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代表降序。
(10)資料庫模糊匹配擴展閱讀:
模糊搜索的定義主要有兩種觀點。
一是系統允許被搜索信息和搜索提問之間存在一定的差異,這種差異就是「模糊」在搜索中的含義。例如,查找名字Smith時,就會找出與之相似的Smithe, Smythe, Smyth, Smitt等。
二是實質上的搜索系統自動進行的同義詞搜索。同義詞由系統的管理界面配置。例如,配置「計算機」與「computer」為同義詞後,搜索「計算機」,則包含「computer」的網頁也會出現在搜索結果中。
將本地圖片輸入到圖片搜索框,
1、假如你的圖片帶有意義的標題,比如「衣服」,那麼搜索結果會顯示相關文本搜索結果
2、假如你的圖片標題沒有任何含義,搜索結果只顯示相關圖片。
3、搜索精準度隨不同圖片可達到的滿意程度不同,往往越是主流商業圖片越精準
目前像網路、谷歌等搜索引擎及淘寶等平台均可實現此應用。
文本模糊搜索
搜索引擎或門戶網站搜索:將文本輸入搜索框,選擇模糊搜索模式,即可得到匹配結果。
資料庫搜索:一般模糊查詢語句如下:SELECT 欄位 FROM 表 WHERE 某欄位 Like 條件。
其中關於條件,SQL提供了四種匹配模式:
1、% :表示任意0個或多個字元。可匹配任意類型和長度的字元,有些情況下若是中文,請使用兩個百分號(%%)表示。
2、_ : 表示任意單個字元。匹配單個任意字元,它常用來限製表達式的字元長度語句:
3、[ ] :表示括弧內所列字元中的一個(類似正則表達式)。指定一個字元、字元串或范圍,要求所匹配對象為它們中的任一個。
4、[^ ] :表示不在括弧所列之內的單個字元。其取值和 [] 相同,但它要求所匹配對象為指定字元以外的任一個字元。
5,查詢內容包含通配符時
由於通配符的緣故,導致我們查詢特殊字元「%」、「_」、「[」的語句無法正常實現,而把特殊字元用「[ ]」括起便可正常查詢。
在不同的資料庫中,模糊搜索的語句會有不同,可在系統幫助文檔中了解。