2016-09-02 91 views
2

ORを使用せずにWHERE x LIKE%x%ステートメントに複数の条件を設定する必要はありますか? %の何か%LIKE COLUMN1とWHERE LIKEのSQLite複数条件

しかし%のCHECK1%や%CHECK2%または%check3%LIKE COLUMN2、使用してORはcolumn1のが、私のための私の最初の前のチェックを削除するところ

は基本的に私は何かを選択することができるようにしたいですここの場所

に滞在するために、これを必要とすることは、私が現在使用している..しかし、私はこれを行うには良い方法がある場合ので、私はcolumn1の

SELECT id FROM test WHERE 
column1 LIKE '%bob%' AND column2 LIKE '%something%' 
OR column1 LIKE '%bob%' AND column2 LIKE '%somethingdifferent%' 
OR column1 LIKE '%bob%' AND column2 LIKE '%somethingdifferent2%' 
を繰り返し続ける必要はありません思ったんだけど何であります

基本的には今、私は繰り返す必要があります

column1 LIKE %bob%' AND ......... 

これを達成するためのよりよい方法があるかどうか疑問です。

+0

は、あなたが正確にOR' 'に対して何を持っています参照してください? 'testからidを選択します。ここでcolumn1は '%bob'のようになります(column2は '%something%'のように、column2は '%somethingelse'やcolumn2のように '%morestuff%')'ですか? –

答えて

4

何について:

SELECT id FROM test WHERE 
column1 LIKE '%bob%' AND 
    (column2 LIKE '%something%' OR 
    column2 LIKE '%somethingdifferent%' OR 
    column2 LIKE '%somethingdifferent2%') 

それは論理的に等価です...

また、正規表現を使用することができます。How do I use regex in a SQLite query?

+0

はい、かっこが行く方法です! 'と'と 'と'を混ぜて使用すると、とにかく持っていることをお勧めします。演算子間の優先順位を覚えているすべての人に頼るよりも明白になることをお勧めします。 – Xavier

+0

カッコを使用しても心に来ていませんでした!ありがとうございました –