-1

私はプロジェクトを維持しています。「timeblock」というテーブルがあり、「break_minutes」というフィールドがあります。レガシーデザインでは、「break_minutes」のタイプはintで、デフォルト値はNULLです。

'break_minutes'を使用していくつかの数学関数を実行するため、この設計は私の新しいタスクには適していません。合計のように。だから私はすでにデータベーススキーマとデフォルト値をNullではなく0に変更しました。

したがって、'break_minutes'値がNULLであるすべてのデータを0に変更する必要があります。

だから私はSQLを書きます:

update timeblock set break_minutes=0 where break_minutes=NULL

結果は空です。

私が次のようなSQLを書く場合:

update timeblock set break_minutes=0 where break_minutes=NULL

結果は、値が0の行のみになります。

2つのsqlは両方とも私の期待を達成できません。

そのアイデアを持っている人はいますか?ありがとう。

4

1 に答える 1

4

値がNULLIS NULLかどうかを確認するには、比較演算子を使用する代わりに、特別な比較述語を使用します。NULLunknownと何かを比較すると、比較演算子が返されます。

UPDATE timeblock SET break_minutes=0 WHERE break_minutes IS NULL
于 2012-05-18T04:43:24.030 に答える