2015-02-11 55 views
0

我有一個包含多個表和一個Web用戶界面的數據庫。我希望用戶能夠搜索數據庫中的數據。 搜索結果可能來自多個表格以及它們之間的連接。如何在多個數據庫表中實現動態搜索

例如:參數來自表A,B,從B表ECT」,所以如果他搜索了& B及He會得到從A & B.

所以我想編寫代碼的結果這將根據用戶執行的搜索動態生成SQL查詢。

但是這種方法實現起來非常複雜,因爲我將不得不爲每個搜索生成一個不同的查詢 - 如果他搜索'a'以便查詢將包含'A'並且如果他搜索'b'它會包含'B',並且如果他搜索'a'&'b',它將包含'A'&'B'。

所以我的問題是 - 是否有一個更簡單的方法來實現搜索或我需要編寫一個代碼加載「如果」?

感謝所有

+0

什麼樣的數據存儲在表A和B?並且,如何知道參數是真實參數a?一個像我這樣的人怎麼會說?如果你可以決定這個邏輯,那麼動態SQL將變得很容易 – Ahmad 2015-02-11 09:37:11

+0

也可以用你的db標籤編輯你的問題,sql只是一種語言。 – Mihai 2015-02-11 09:39:32

+0

對於學生我的查詢將如下所示:select * from A.如果他正在搜索一個等級,查詢將是:從B選擇*,但如果他將搜索學生的成績,則查詢將爲:select *從A join B等'。所以我的代碼應該爲不同的搜索組合生成不同的「from」和「where」子句? – Shmuli 2015-02-11 09:52:17

回答

0

我真的不知道你的數據庫是如何設計的,但你可以設計一個searchingmechanism其中用戶可以chooze其數據庫/ S,他希望(在frontendside當然用戶友好的標識符)進行查詢。在你的數據庫中,你可以爲你的表指定一個包含元信息的表,例如表格名稱,要搜索的列等

當用戶告訴界面哪個Categorys(tbls)他想要搜索的時候,你可以將Parameter與一個給定的索引混合(你可以計算逗號),然後做一個while循環for搜索該字符串中所有tbls的索引計數,將RS插入臨時表#1,#2,#3,...選擇它們並執行它們。

你必須考慮不同的數據類型等。它不那麼容易tbf

相關問題