2012-01-18 44 views
0

は、私は私がこの私はこれを行うことができますか? mysqlの値として(2 <a <8,1,0)なら?

if(a<8 , 1, 0) as Value

を行うことができます知っているが、私はこれを行うことができますか?

if(2<a<8 , 1, 0) as Value in mysql?

私は疲れましたが、動作しません。私は2番目の結果を得るためには、そこに行う方法はありますか?

+0

試しましたか? – Prescott

+0

はい、それは私のために働かない...私は2番目の結果を取得したい場合は、行う方法があるのですか? – peipei

+0

それは動作します... BUT値は常に1になります –

答えて

1

より標準であるために、私はCASE文でこれを書きたいことができます。

CASE WHEN a > 2 AND a < 8 THEN 1 ELSE 0 END AS Value 
1

私はそうは思いませんが、あなたはIF(2<a AND a<8, 1, 0)

0

技術的にはあなただけSELECT a BETWEEN 3 AND 7を使用することができますとにかく1または0を返します。 3と7を使用して

したいので> 2と< 8ない> = 2と< = 8

あなたの例では、aの値に応じて0または1を返す2 <評価します。 0 < 8または1 < 8と評価されます。常に1と評価されます。

+0

列の値が整数であると仮定します。 – Mchl

+0

これは、テーブルスキーマを利用できないという合理的な前提です。 – anothershrubery

2

確かに、できますが、望む結果は得られません。しかし、完璧に有効です。

例:

SELECT IF(1 < 2 < 3, 1, 0) AS `value` 

この戻り '1'。それはうまくいくはずですよね?あんまり。何が起こるかは、次のとおりです。

Is 1 < 2 ? Sure! Let's return "1" (an INT because MySQL doesn't have a boolean TRUE) 
Is 1 < 3 ? Sure! 

これを行うとどうなりますか?

SELECT IF(100 < 200 < 100) AS `value` 

これはTRUE(1)です。これが発生するため:

Is 100 < 200? Sure! So let's return "1". 
Is 1 < 100? Yep! 
関連する問題

 関連する問題