2017-03-06 6 views
2

複数の列にまたがって同様のステートメントを照会しようとしています。 「モルモットは」「ハムスター」 「スナネズミ」 「ウサギ」 「猫 「犬のSQL内の複数の列にわたる同様のステートメント

を、私は「これらのLIKEこれらの用語や語句を検索必要があります。私は、次の検索用語を持っています約40の異なる柱を持つ動物のテーブル。私は「animalscolumnは、」私は全体の「LIKE」ステートメントを実行する必要がある唯一の列ではありませんが

Select * from animals where [animalscolumn] like ('%dog%') or like ('%cat%') or like ('%gerbil%') or like ('%hamster%') or like ('%guinea pig%') 

を行うことで、私のような声明を行うことができます知っています。私は約40列でこれらの用語を検索しなければならない。誰かがどうやって知っているだろうか?ありがとう!

+2

どのDBMSを使用していますか? – Pablo

+0

次のような一時テーブルを使用することができます。http://stackoverflow.com/a/1387797/7667467 – Lightningbear

+0

これは一時的なタスクですか、機能の一部ですか? 1回限りのタスクでは、テキストエディタでcopy-paste/contextual replacementを使用して、240個の句を含むクエリを作成し、一回限りのタスクが完了したらそれを放棄します。機能については、データベースの全文検索機能を調べるか、アプリにElasticSearchのような機能を追加することにしました。 – 9000

答えて

1

複数likeステートメントはorと直接使用できません。 likeステートメントごとにcolumn nameを使用する必要があります。

下記のように複数を使用してください。

Select * 
from animals 
where 
(
[animalscolumn] like ('%dog%') or 
[animalscolumn] like ('%cat%') or 
[animalscolumn] like ('%gerbil%') or 
[animalscolumn] like ('%hamster%') or 
[animalscolumn] like ('%guinea pig%') 
) 
関連する問題