レコードを値の範囲で更新するには、BETWEEN
演算子を使用していることに気付いています。範囲がサブクエリによって定義されている複数のレコード範囲を更新するにはどうすればよいですか?
UPDATE datetable
SET tableflag = 1
WHERE date BETWEEN '2017-02-01' AND '2017-03-01'
は(これは、単一または複数の固定範囲を処理するための簡単な方法である2017年2月の第一と月2017年の第一間の日付があるすべてのレコードに対して1にフィールド「tableflag」を設定しますBETWEEN
オペレータの間のいくつかの条件を使用して)。
2017年の2月の最初と最後の日曜日の間に日付があるレコードごとに 'tableflag'を1に設定すると、サブクエリを使用して2月の最初と最後の日曜日の日付を生成できます。
しかし、上記の問題の条件が一般化され、年にかかわらず、2月の最初と最後の日曜日の間にあるすべてのレコードで 'tableflag'を1に設定する必要がある場合、問題はかなり発生しますより複雑。 between演算子は単一の行を必要とし、それを渡すと同じ大きさの2つのサブクエリがエラーをスローします(サブクエリは1行以上を返します)。
私は一般化された問題をどのように解決できますか?