2012-04-02 4 views
-1

ブール値を取得しようとしています.1の場合はイメージが挿入されます。私は何か新しい値を設定しようとしている場合1 =

Iは、チュートリアルを見て、それが動作するかどうかをテストするためのスターターとしてこれを作った:

AND IF(IF_DRAFT_BEER = '1', 5, 2) = 1 

I次いで場合IF_DRAFT_BEER= 1は、5に値を設定することを言うことを試みましたそれ以外の場合は2。それがうまくいけば、イメージを実装しようとします。

私はそれをこのように印刷された:

$row['IF_DRAFT_BEER'] 

しかしを挿入し、句場合、行のどれもがもう表示されません後。

なぜこのようなことが起こるか知っていますか?ありがとう! :)

+0

なぜ「UPDATE」を2回使用しないのですか? – hjpotter92

答えて

2

まあ、あなたの行;

AND IF(IF_DRAFT_BEER = '1', 5, 2) = 1 

は、基本的に5または2が、その後、1と比較した結果が得られます。 5または2のいずれも1に等しいので、比較は真にならず、クエリは行を返しません。

where節でこの種の計算を行う理由がわかりませんが、計算を選択肢に移動して結果として実際に得たいと思っています;

SELECT IF(IF_DRAFT_BEER = '1', 5, 2) AS IF_DRAFT_BEER 

これはあなたの結果に表示されます。$row

+0

それはトリックをした、ありがとう! – pufAmuf

3

あなたは常にそのクエリから真偽値を得るでしょう。 IF()呼び出しでは、5または2が返されます。 1に対して5または2をテストします。これは常にFALSEとなります。

は最後= 1をドロップ:

AND IF(IF_DRAFT_BEER = 1, 5, 2) 

ので、5と2が実際に返すことができます。

+0

ありがとうMarc、そのトリックをしました。私はしかし、返された数は格納されておらず、実際のブール値だけが出力されていることに気付きました。どうすればこの問題を回避できますか? – pufAmuf

+0

まあ、それは 'と' ...全体のクエリを見ることなく、何が問題かもしれないと言うことはできません。 –

関連する問題