2013-11-25 17 views
0

我有很多表的數據庫(Oracle),例如:客戶端,產品,操作等我想實現搜索,這將允許我寫一個短語'MA'並給出提示:在很多表中的數據庫搜索

MA RIA客戶

MA STERMIND產品

RE MA PPING操作

等...

如何做到這一點?有什麼辦法做到這一點?我應該創建另一個表將所有名稱(客戶名稱,產品名稱,操作名稱...)?或者只是在所有表格中搜索,使用許多LIKE條件? 如何有效地做到這一點?

很多人把我的問題標記爲重複的,所以我想解釋一下:我不是在尋找我想要使用一次的解決方案,我需要實現它一個生產環境,許多人會在那裏搜索這樣的信息以上。我知道我可以從dba_tables,dba_tab_columns視圖創建動態sql,但我想準備有效的方法來做到這一點!在WHERE子句中使用LIKE不會使用索引,所以我會進行全表掃描 - 這在有很多用戶和大表的系統中不起作用。爲了知道我會考慮創建關鍵字列表的關鍵字與關鍵字列和使用CONTAINS而不是LIKE,但也許你有另一個想法。也許另一個數據庫引擎具有可以幫助我的功能?

回答

0

請閱讀UNION和VIEW。你應該使用哪一個取決於你的數據庫的大小和查詢的複雜性。

+0

我應該考慮使用域指標和「包含」操作?對於LIKE b-tree索引不起作用 – user3032111