2016-11-04 30 views
1

SQLクエリのデータが 'fileUnavailable'で、別のテーブルに 'fileAvailable'を挿入する必要があります。値は1または0で、SQL挿入を行う必要があります。 fileUnavaiableとfileAvailableは反対であるため、最初の値を1に変更する必要があります.1の場合は0に、0の場合は0に変更する必要があります。元々、if、elseステートメントを実行して値を変更することを考えていましたが、もう方法がないのであまりにも単純なようです。SQL:値が0の場合はINSERT、値が1の場合は0

私は、SQLに!(fileUnavailable)のようなものがあるのか​​どうか不思議ですが、これらの値はデータベースのint型なので1と0で動作します。

は疑似:

INSERT INTO table (fileAvailable) VALUES (NOT($fileUnavailable)); 

答えて

2

ABSとヒントを使用します。1ある

UPDATE table SET field = ABS(field - 1) 

のでfield場合、field - 1abs(0)はまだ0で、0です。

そしてfield場合は0あり、その後、field - 1abs(-1)1で、-1です。クエリのために

ABS() man page.

あなたは質問で提供:

INSERT INTO table (fileAvailable) VALUES (ABS($fileUnavailable - 1)); 
+0

何値がが0ですか? if、else文でこれを使用していますか? – DJSweetness

+1

0-1は-1であり、そのABSは1であり、偽ではありません。このクエリはそのままです –

+0

ああ、今理解しています! – DJSweetness

関連する問題