我正在處理數據庫,在那裏我找到了搜索關鍵字(可能是名稱或地址或城市等)的情況。現在我需要創建一個存儲過程來在數據庫的所有表中進行搜索。在數據庫的所有表中搜索關鍵字的存儲過程
任何人都可以幫助我擺脫這個PLZ .. !!
我正在處理數據庫,在那裏我找到了搜索關鍵字(可能是名稱或地址或城市等)的情況。現在我需要創建一個存儲過程來在數據庫的所有表中進行搜索。在數據庫的所有表中搜索關鍵字的存儲過程
任何人都可以幫助我擺脫這個PLZ .. !!
沒有數據庫內置支持這種要求。所以,你必須根據環境和標準開發自己的解決方案。
現在,一個通用的解決方案是創建一個遍歷所有表中的所有列並查找匹配列的過程。這通常意味着相當大的性能成本,具體取決於數據庫的大小,必須謹慎避免或進行性能檢查。諸如列類型檢查之類的技術可用於減少搜索空間並避免不必要的成本。
根據您的數據庫類型,可能有其他解決方案。例如,如果你的數據庫是Oracle,我發現here是一個有用的技術。此外,大多數廣泛使用的數據庫(包括Oracle)都支持全文搜索功能,可以在文本列內高效搜索模式。您應該查閱數據庫手冊以找到完成此項工作的有效方法。
在這裏,我去回答,
你必須選擇u所需執行的搜索功能列,
然後開始是這樣的。
SELECT * FROM TABLE1
LEFT OUTER JOIN TABLE2 on TABLE2.a = TABLE1.a
LEFT OUTER JOIN TABLE3 on TABLE3.a = TABLE1.a
LEFT OUTER JOIN TABLE4 on TABLE4.a = TABLE3.a
WHERE TABLE1.a LIKE '%'. Keyword . '%' OR
TABLE2.b LIKE '%'. Keyword . '%' OR
TABLE3.a LIKE '%'. Keyword . '%' OR
TABLE4.c LIKE '%'. Keyword . '%' OR
TABLE1.b LIKE '%'. Keyword . '%'
等等
這是基本方式之一,然而v將有更有效的方法..
可能幫助別人..
你將不得不證明*很多*更多信息。例如,什麼樣的數據庫?你使用什麼編程語言?如果可以的話,請提供一些代碼。 – 2012-09-21 11:35:23