「備品」テーブルの複数列(ホワイトボードと椅子)を更新する場合、
SQL
1UPDATE 備品 SET 備品.数量 = Switch(備品名='ホワイトボード',数量+1,備品名='椅子',数量+10);
とクエリを作成すると、クエリで指定していない備品名='マイク'がNULLになります。
WHERE フィールド名 INで回避できると分かりました(下記SQL)が、何故WHERE フィールド名 INを付けていないと、上記のような結果になるのでしょうか。手元のSQLの本の説明は、複数列の更新のみで、複数行の更新はありませんでした。よろしくお願いします。
SQL
1UPDATE 備品 SET 備品.数量 = Switch(備品名='ホワイトボード',数量+1,備品名='椅子',数量+10) WHERE (((備品.備品名) In ('ホワイトボード','椅子')));
「備品」テーブル
会議室名1 | 備品名 | 数量 |
---|---|---|
A | ホワイトボード | 2 |
A | 椅子 | 20 |
B | 椅子 | 10 |
A | マイク | 1 |
B | ホワイトボード | 0 |
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/31 09:03
2021/10/31 09:40
2021/10/31 09:46