如何用SQL語句實現精確搜尋以及模糊搜尋

2021-03-31 08:56:58 字數 1389 閱讀 9164

在寫web專案的時候,搜尋是必須提供的功能 

就像你在google裡搜尋sql server 2000, 

它首先嚴格匹配整個字串 

在找不到的情況下,看有沒有包含這三個單詞的結果 

如果連三個單詞都包含的結果都沒有,就試著找出包含任乙個詞的結果 

下面的**是用c#在**中動態構建這種搜尋模式的條件語句的函式 

searchmode就是搜尋模式了,1代表精確,2,代表全包含 ,3代表任意包含 

string strcondition="id in ("; 

string strsubquery="select distinct productid from productcateview where id<>0 "; 

if(request.querystring["country"]!=null) 

strsubquery+=" and industryregionid="+request.querystring["country"]; 

if(request.querystring["industry"]!=null) 

strsubquery+=" and industryid="+request.querystring["industry"]; 

if(request.querystring["keyword"]!=null) 

else 

strtemp+=strsqlkeyword+"%'"; 

} if(strsearchmode=="3") 

strtemp=strtemp.trimend(new char ); 

} strsubquery+=strtemp; 

} strsubquery+=")"; 

} strcondition+=strsubquery; 

strcondition+=")"; 

return(strcondition);     

三種模式中,第一種會構造出類似下面的sql條件 

field1+field2+field3 like %keyword% 

第二種構造出 

field1+field2+field3 like %keyword1%keyword2%keyword3% 

第三種構造出 

field1+field2+field3 like %keyword1% or field1+field2+field3 like %keyword2% or field1+field2+field3 like%keyword3% 

這三種模式來 

其中keyword1,keyword2,keyword三就是用keyword分隔出來的單詞了 

一般可以假定客戶用空白字元,or,|或者,或者;來分隔 

不過,一般來說,客戶總是會用空格來分隔的

如何用SQL語句實現精確搜尋以及模糊搜尋

在寫web專案的時候,搜尋是必須提供的功能 就像你在google裡搜尋sql server 2000,它首先嚴格匹配整個字串 在找不到的情況下,看有沒有包含這三個單詞的結果 如果連三個單詞都包含的結果都沒有,就試著找出包含任乙個詞的結果 下面的 是用c 在 中動態構建這種搜尋模式的條件語句的函式 s...

如何用sql語句實現欄位自增

如何用sql語句實現欄位自增 如果從表中讀到字段最大值 0003 增加一條記錄 字段值 為 0004 select right 000 rtrim cast isnull max field1 0 as int 1 4 from tablename 觸發器,如果一次只加一條,欄位名為id,假定def...

MATLAB中如何用迴圈實現精確延時

前面在用matlab控制硬體的時候,在每次採集的過程中需要等一段固定的時間再採集訊號。所以這裡就會需要用到延時函式來精確延時,首先想到的就是函式pause time 但執行時發現錯誤,後來弄清楚了,pause的作用是暫停,而不是延時。在執行pause時,程式各個系統都暫停了,也要把我的採集硬體部分暫...