私はデータベースに取り組んでおり、キーワード(名前、住所、都市など)を検索する状況が発生しました。次に、データベースのすべてのテーブルを検索するためのストアドプロシージャを作成する必要があります。
誰かがこのplzから私を助けることができますか..!!
私はデータベースに取り組んでおり、キーワード(名前、住所、都市など)を検索する状況が発生しました。次に、データベースのすべてのテーブルを検索するためのストアドプロシージャを作成する必要があります。
誰かがこのplzから私を助けることができますか..!!
このような要件に対するサポートが組み込まれているデータベースはありません。したがって、環境と基準に応じて独自のソリューションを開発する必要があります。
ここで、一般的な解決策は、すべてのテーブルのすべての列を反復処理し、一致する列を見つけるプロシージャを作成することです。これは通常、データベースのサイズに応じてかなりのパフォーマンスコストがかかることを意味し、回避するか、パフォーマンスを注意深くチェックする必要があります。列タイプのチェックなどの手法を使用して、検索スペースを削減し、不要なコストを回避できます。
データベースの種類によっては、他のソリューションが利用できる場合があります。たとえば、データベースがOracleの場合、ここで示した手法が役立つことがわかりました。また、Oracleを含む最も広く使用されているデータベースは、テキスト列内のパターンの効率的な検索を提供する全文検索機能をサポートしています。この作業を効率的に行う方法を見つけるには、データベースのマニュアルを参照してください。
ここで私は答えに行きます、
検索機能を実行するには、必要な列を選択する必要があります。
次に、このようなものを開始します。
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 にはもっと効率的な方法があります。
誰かを助けるかもしれない..