-2
update notification_rule_details nrd SET nrd.NRL_FIRE_DATE=nrl_next_fire_date,nrd.NRL_NEXT_FIRE_DATE=cal_next_fire_date where nrd.NRD_ID=nrl_id and (nrd.NRD_NRL_ID!=3 or nrd.NRD_NRL_ID!=4);

上記のクエリで、nrd.NRL_FIRE_DATE と nrd.NRL_NEXT_FIRE_DATE を更新したいのは、nrd.NRD_NRL_ID!=3 または nrd.NRD_NRL_ID!=4 の場合ですが、3 と 4 の発火日と次の発火日も更新します

4

3 に答える 3

2

Not In を使用しない理由:

update notification_rule_details nrd SET nrd.NRL_FIRE_DATE=nrl_next_fire_date,nrd.NRL_NEXT_FIRE_DATE=cal_next_fire_date where nrd.NRD_ID=nrl_id and nrd.NRD_NRL_ID Not In (3,4);
于 2013-08-05T07:33:39.877 に答える
1

あなたは単にそれを使うことができますNOT IN()

UPDATE notification_rule_details nrd 
SET nrd.NRL_FIRE_DATE=nrl_next_fire_date 
   ,nrd.NRL_NEXT_FIRE_DATE=cal_next_fire_date 
WHERE nrd.NRD_ID=nrl_id 
AND nrd.NRD_NRL_ID NOT IN(3,4);

このサンプルSQLFiddle デモを参照してください

于 2013-08-05T07:33:51.127 に答える
1

これは常に true です:

(nrd.NRD_NRL_ID!=3 or nrd.NRD_NRL_ID!=4)

論理的な問題があります。

多分あなたが欲しかった

and nrd.NRD_NRL_ID!=3 and nrd.NRD_NRL_ID!=4

?

于 2013-08-05T07:30:08.143 に答える