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