1

私はデータベースに取り組んでおり、キーワード(名前、住所、都市など)を検索する状況が発生しました。次に、データベースのすべてのテーブルを検索するためのストアドプロシージャを作成する必要があります。

誰かがこのplzから私を助けることができますか..!!

4

2 に答える 2

0

このような要件に対するサポートが組み込まれているデータベースはありません。したがって、環境と基準に応じて独自のソリューションを開発する必要があります。

ここで、一般的な解決策は、すべてのテーブルのすべての列を反復処理し、一致する列を見つけるプロシージャを作成することです。これは通常、データベースのサイズに応じてかなりのパフォーマンスコストがかかることを意味し、回避するか、パフォーマンスを注意深くチェックする必要があります。列タイプのチェックなどの手法を使用して、検索スペースを削減し、不要なコストを回避できます。

データベースの種類によっては、他のソリューションが利用できる場合があります。たとえば、データベースがOracleの場合、ここで示した手法が役立つことがわかりました。また、Oracleを含む最も広く使用されているデータベースは、テキスト列内のパターンの効率的な検索を提供する全文検索機能をサポートしています。この作業を効率的に行う方法を見つけるには、データベースのマニュアルを参照してください。

于 2012-09-21T13:47:58.397 に答える
0

ここで私は答えに行きます、

検索機能を実行するには、必要な列を選択する必要があります。

次に、このようなものを開始します。

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 . '%'  

等...

これは基本的な方法の 1 つですが、v にはもっと効率的な方法があります。

誰かを助けるかもしれない..

于 2013-02-14T09:37:26.097 に答える