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

2021-04-17 01:31:01 字數 1280 閱讀 1461

在寫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%

這三種模式來

如何用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時,程式各個系統都暫停了,也要把我的採集硬體部分暫...