0

属性を知らずにテーブル内のテキストを検索したい。例:テーブルCustomerがあり、列名を知らなくても、任意のフィールドに「mohit」を含むレコードを検索したいと思います。

4

3 に答える 3

0

テーブルを完全に検索したい場合は、テーブルの構造を確実に知っている必要があります。テーブルにフィールド、、、、およびがあることを考えるidと、nameSQLクエリは次のようになります。ageaddress

SELECT * FROM `Customer`
    WHERE `id` LIKE '%mohit%'
    OR `name` LIKE '%mohit%'
    OR `age` LIKE '%mohit%'
    OR `address` LIKE '%mohit%';
于 2012-06-24T06:37:07.820 に答える
0

フルテキストインデックスを探しています

を使用した例Contains

select ColumnName from TableName 
Where Contains(Col1,'mohit') OR contains(col2,'mohit')

-sys.Columnsクエリから計算された列名を使用して、上記のフリーテキストクエリを動的クエリに変換できます。

以下も確認してください

修正:列全体でのCONTAINS句検索を使用した全文検索クエリ

また、以下のクエリからすべての列名を確認できます

Select Name From sys.Columns Where Object_Id = 
                   (Select Object_Id from sys.Tables Where Name = 'TableName')

Double-WildCard LIKEステートメントは、クエリを高速化しません。

于 2012-06-24T07:02:52.597 に答える
0

Mohit、あなたが自分で解決策を考案してくれてうれしいです。

とにかく、未知のテーブルやデータベースに再び直面するときはいつでも、ここに投稿したコードスニペットは大歓迎だと思います。

ああ、もう1つ、与えられた答えはあなたの問題に対処していませんでしたね?

于 2012-09-23T23:43:55.417 に答える