2016-10-03 17 views
0

条件が1つの列に基づいている場合は、IN、AND、またはORのいずれかを使用できますが、条件が2つの列に基づいている場合、クエリの作成方法は?たとえば、列2 = '赤' AND列3 = '月曜日'、列2 = '黄色'、列3 = '火曜日'の列1の値をNULLに設定する必要があります。 '赤色'または '黄色'は列2では一意ではなく、 '月曜日'と '火曜日'でも同じです。私はかなりの数の行を更新する必要があります。 1つのクエリでこれを行うにはどうすればよいですか?ありがとうございました!複数の行を選択する方法(sqlの2つの条件)?

column1 column2 column3  
1   red  Monday  
2   red  Tuesday  
3   yellow  Monday  
4   yellow  Tuesday  
5   green  Wednesday 

結果は次のようになります。

column1 column2 column3  
NULL   red  Monday  
2   red  Tuesday  
3   yellow  Monday  
NULL   yellow  Tuesday  
5   green  Wednesday 

答えて

1

WHERE句は、単純な真/偽の値に煮詰める:true - 行の試合なので、何かをします。 false - 一致しない、何もしないでください。

WHERE (condition1) OR (condition2) OR ... 

その後

あなたが複数の独立した条件を持っている場合、そして、あなたは自分のin条項持つ含め、必要があるとして、それらのサブの各条件は、として任意に複雑/単純なことができます:

WHERE (foo IN ('a','b','c')) OR (bar IN ('p','q', 'r')) OR (baz = 42) 
1
UPDATE yourTable SET column1 = NULL WHERE (column2 = 'red' AND column3 = 'Monday') OR (column2 = 'yellow' AND column3 = 'Tuesday') 
関連する問題