沒時(shí)間做,給出一種方案:
1、初始化SqlCommand、SqlConnection,獲取數(shù)據(jù)表至DataTable,查詢多次,本地緩沖,效率高點(diǎn)。
2、關(guān)鍵字分割網(wǎng)站推廣為一維字符串?dāng)?shù)組keys[],n個(gè)關(guān)鍵字,用兩個(gè)函數(shù)求出1至n個(gè)關(guān)鍵詞的全部組合,由于m個(gè)關(guān)鍵字的組合可能若干種,每種都是一個(gè)二維數(shù)組(每行是一個(gè)組合),所以存至三維交錯(cuò)數(shù)組,方法如下:
string[][][] allKeys=new string[n][][]();
void fun1()
{
for(int i=0;i<keys.Length;i++)
{
fun2(i);
}
}
void fun2(int m)
{
對n個(gè)關(guān)鍵詞求m個(gè)的組合,自己編寫,記得要初始化allKeys的**、三維。
}
3、利用上述三維字符數(shù)組,從n到1個(gè)關(guān)鍵詞的順序,構(gòu)網(wǎng)站關(guān)鍵詞排名造like子句(n 乘以 n中取m個(gè)組合數(shù) 個(gè)子句)。
4、定義DataTable的DataView,一次設(shè)置其RowFilter屬性為上述有序的
like子句
***********************************************************
補(bǔ)充:
求固定位的組合。下面是一種用遞歸的做法:
int mt=m;
int k=n!/m!;//n中取m的組合數(shù),不會(huì)再要求我寫求n!的程序了吧?
allKeys[mt]=new string[k][]();
allKeys[mt][k]=new string[mt]();
以上是本問題必要的初始化。下面求n中取m的一個(gè)組合。
void combination(int n,int m)
{
int i;
for (i = n; i >= m; --i) {
allKeys[mt][k][m]=keys[i];
if (m > 0)
combination(i-1,m-1);
else
return;
}
}
更好的方法工作人員團(tuán)隊(duì)扶持 你們搞到的不**是網(wǎng)頁,而是本公司全面研發(fā)工作員工團(tuán)隊(duì)的撐持。各位朋友不要求有那么多的專業(yè)的網(wǎng)絡(luò)平臺(tái)技術(shù)從網(wǎng)站設(shè)計(jì)到長期關(guān)注服務(wù)都為全部操作服務(wù)。SQL多個(gè)關(guān)鍵字模糊查詢(同一字段中)如何讓盡量多的關(guān)鍵字相匹配我企業(yè)六年網(wǎng)站推廣經(jīng)驗(yàn)豐富同時(shí)積累了更多的網(wǎng)絡(luò)推廣專注與技術(shù),網(wǎng)站推廣本公司擁有一支 鍥而不舍 、百折不回、敢于創(chuàng)新、業(yè)精于勤、行成于思、自強(qiáng)不息 , 同心同德 、兢兢業(yè)業(yè)、的團(tuán)隊(duì)。公司的制作網(wǎng)站得注重我們本身高科技的顧客大眾 利用各類表面和用戶維持溝通、吸收著我們自身的客戶長期地和企業(yè)網(wǎng)頁實(shí)施彼此了解也許起到廣而告之的見效。