0

こんにちは私はチェックする複数の条件を持つmysqlクエリを持っているので、それぞれを区切るために()を使用しています、例えば:

WHERE (a='string' AND b='string') OR (a='otherstring' AND b='otherstring)

私が抱えている問題は、ユーザーチェックを追加する必要があることです。たとえば、()を再度使用する必要があるかどうかはわかりません。これは正しいですか?

WHERE ((a='string' AND b='string') OR (a='otherstring' AND b='otherstring)) AND (id='1') 

ありがとう!

4

2 に答える 2

1
WHERE 
    (
        (a='string' AND b='string') 
        OR (a='otherstring' AND b='otherstring')
    ) 
    AND id='1'

これにより、IDが1で、a.string=b.stringまたはa.string=otherstringのすべてのレコードが検索されます。

編集:さらに明確にするために:

基本的に、角かっこ内のすべては、たとえば次のように一緒に同等化されます。

// Condition 1
(
    this=somethingelse
    and this2=somethingelse2
)
// Condition 2
and
(
    someCondition=anotherConidition
    and
    // Condition 3
    (
        thirdCondition=anotherCondition3
        or thirdCondition2=anotherCondition4
    )
)

この例では。条件1の両方の句が満たされている必要があります。条件2も満たす必要がありsomeCondition HAS to equal anotherCondition、条件3のいずれかのステートメントと同様に、条件2の内部にある必要があります。

于 2012-07-09T11:54:12.413 に答える
0

これは、最後の条件で文字列を閉じなかったコードに関連している可能性があります。これを試してください

WHERE ( (a='string' AND b='string') OR (a='otherstring' AND b='otherstring') ) AND (id='1')

于 2012-07-09T11:53:58.053 に答える