2011-07-18 1 views
1

LIKEが行のどのフィールドにも一致するクエリを作成しようとしています。SQL:LIKEを使用すると、検索がその行の任意の値と一致する場合に行を返します。

別の言い方をすれば、各LIKE条件に一致するように列名を明示的に設定する必要はありません。このようなので、

、このような

SELECT * FROM mytable WHERE any_field_value LIKE 'str%' 

ませ

SELECT * FROM mytable WHERE col_a LIKE 'str%' OR col_b LIKE 'str%' 

のように。

確かに、珍しい要求ではありませんか?誰かが私に光を見せてくれますか?

答えて

1

動的SQLを使用してのみ行うことができます(全文索引付けを使用しない場合)。

あなたがそれを行う前に、私は読書をお勧め:The Curse and Blessings of Dynamic SQL(仮定SQL Serverの)

2

は、実はそれは単に本当ではありません。フルテキストインデックス作成を設定していると仮定すると、これを行うことができます。 もう一度、私たちがSQL Serverを扱っていると仮定します。それがリンクした文書では非常に明確ではありませんので、

http://msdn.microsoft.com/en-us/library/ms142488.aspx

私はあなたがテーブルにフルテキストインデックスが作成すべての列を検索するために、列名ではなく、*を指定することができますことを、指摘しなければなりません。

編集: フルテキスト検索は、mysqlでも利用できます。 *でもそれを使うことができるかどうかはわかりません。

+0

+1。私は全文索引が除外されていると仮定していました。 –

+0

ありがとう@Telerian、私はMySQLを使用しています...しかし、私は動的SQLや全文索引についてはあまり知らないので、「簡単にできません」と答えるだけです。 :) – Ben

+0

あなたのためにmysqlタグを追加するのが良い理由です。 ;) –

関連する問題