2
我在我的asp.net網站中實現了全文搜索,該搜索在搜索一個表時起作用。但是,我希望用戶能夠同時搜索兩個完全不同的表格。我用下面的代碼嘗試這樣的:瓶坯在多個表上的全文搜索
public List<Article> Search(List<string> keywords)
{
StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder.Append("select [aName],[aDesc] from [Table1] union select [bName],[bDesc] from [Table2] where");
foreach (string item in keywords)
{
sqlBuilder.AppendFormat("([bName] like '%{0}%' or [bDesc] like '%{0}%') and ", item);
}
//foreach (string item in keywords)
//{
//sqlBuilder.AppendFormat("([aName] like '%{0}%' or [aDesc] like '%{0}%') and ", item);
//}
string sql = sqlBuilder.ToString(0, sqlBuilder.Length - 4);
return QueryList(sql);
}
這個代碼總是顯示所有記錄從我的第一個表,並且只對第二臺搜索。現在這顯然是因爲我沒有在sql語句中的第一個表的'where'。我無法弄清楚如何爲不同'foreach'循環的每個表實現'where'。有什麼建議麼?
@BrianBrian - 因爲你的 「無上限」'和'的,也許? – JDB
如何用1 = 1來限制它? –
@BrianBrian - 編輯 – JDB