2012-03-23 12 views
0

データベースから値またはその逆を抽出したいと思います。 PHPではなくSQLでif文を実行する方法を探したいと思います。値またはその逆数を選択するMysqlの条件付き

to_value私は$ from_valueと変数to_value $を持っており、対応するレート値またはその逆を抽出したいと思い、ID、レート、from_value:

私のテーブルは次のようになります。

私は希望の唯一の要求に

SELECT `rate` if `from_value` = $from_value and `to_value` = $to_value 

または

SELECT (1/`rate`) if `from_value` = $to_value AND `to_value` = $from_value 

に。

CASE、IFでこれを行う方法はたくさんありましたが、実際の解決策は見つかりませんでした。 私はおそらく何かを逃した。おかげ

答えて

2

CASEを用いた携帯方法です。 でもの条件が満たされていない場合は、返信します。NULL

SELECT 
    CASE 
    WHEN `from_value` = $from_value AND `to_value` = $to_value THEN rate 
    WHEN `from_value` = $to_value AND `to_value` = $from_value THEN (1.0/rate) 
    ELSE NULL 
    END AS rate 
FROM tbl 
+0

+1は移植性とデフォルトの場合です。 –

+0

ありがとう、私はそれを試みるつもりです。私はWHEN xとyがうまくいかないと思った。 (それは私がCASE 'from_value'を精密化したからだった!!) – student310

1

更新IFソリューション:ここ

SELECT IF(from_value = $from_value AND to_value = $to_value, rate, 
    IF(from_value = $to_value AND to_value = $from_value, (1.0/rate), NULL) 
FROM your_table 
+0

この場合、**マイケル**の回答は実りです。 –

+0

はい、ありがとうございます。私は2つの回答を投票することはできませんが、あなたはその質問に答えます。 – student310

関連する問題