-1

現在、SQL に 100 個のテーブルがあり、すべてのテーブルで特定の文字列値を探していますが、それがどの列にあるのかわかりません。

select * from table1, table2 where column1 = 'MyLostString'どの列にある必要があるかわからないため、機能しません。

そのためのSQLクエリはありますか、その「MyLostString」のすべての列のすべてのテーブルをブルートフォース検索する必要があります

すべてのテーブルで総当たり検索を行う場合、そのための効率的なクエリはありますか? 例えば:

select * from table3 where allcolumns = MyLostString

4

1 に答える 1

1

値の意味がそれが含まれるに依存するのは、RDBMS (または少なくともその 1 つ) の特徴です。架空のテーブルの17customer_idproduct_idorders

これは、値がどのテーブルのどの列で使用されても、値を検索する機能が RDBMS には十分に備わっていないという事実につながります。

私の推奨事項は、最初にデータ モデルを調べて、どのテーブルのどの列に値を保持する必要があるかを調べてみることです。これが本当に失敗した場合は、「文字列が失われる」よりもはるかに悪い問題があります。

最後の手段は、DB をフラット ファイルなど、全文検索により適したものに変換することです。mydbexportcommand --options | grep -C10 'My lost string'試してみたり、友達にしたいかもしれません。

于 2012-12-13T19:48:19.380 に答える